实时警报通知:微信告警通知的重要性解析
1863
2023-01-25
本文目录一览:
1. http代码表,常考题目
404:找不到资源
500:服务器内部错误,无法完成请求。
501:服务器不支持请求的功能,无法完成请求。
502:充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。
301:永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI,今后任何新的请求都应使用新的URI代替。
302:临时移动。与301类似。但资源只是临时被移动,客户端应继续使用原有URI。
200:成功。
2. TCP/IP四层网络模型
链路层、网络层、传输层、应用层。
3. TCP/UDP区别?
TCP: 可靠传输协议,需要三次握手连接,有确认重传机制,特点是可靠、准确、有拥塞控制,缺点就是比较慢,传输量比较小,适用于升级、下载;一句话:TCP是可靠的传输。
UDP: 不可靠传输协议,面向非连接的协议,优点是传输量大、速度快,缺点是已丢失、没有拥塞控制,适用于直播、视频等。一句话:UDP是不可靠的传输。
4. html css js运行的先后顺序是什么?
界面加载的时候先加载html在加载css最后加载js
5. session和cookie的区别是什么
1. session存放在服务器端用来校验客户端的身份
2. cookie存放在客户端,每次从客户端往服务器发请求时,将cookie带到服务器端,用来校验客户端的身份
1. 怎么用JMeter测试接口?
如果使用JMeter进行接口测试:
1) 测试前了解需求,根据接口规格说明书梳理业务;
2) 接下来设计用例,分析接口的入参和出参,分清楚有哪些有效输入和无效输入,设计用例(原则:用最少的用例覆盖所有有效输入,针对每一个无效的输入设计一个测试用例,如果有错误码没有覆盖到,还要对每个未覆盖的错误码分别设计一个用例);
3) 准备测试数据,比如:测试所需的账号、密码、key 等信息;
4) 打开JMeter,创建一个线程组,根据接口类型,填写好对应的接口地址和请求方式等;
5) 参数化配置,添加配置元件CSV Data Set Config,定义变量,并准备CSV格式的数据,变量的引用用${变量名}的格式;
6) 添加断言来判断测试结果的正确性,用得最多的是响应断言;
7) 添加监听器,比如查看结果树,对测试结果进行监听;
8) 运行测试用例;
9) 查看监听器结果,来判断用例的执行是成功还是失败,针对失败的用例,分析其失败原因;
10) 针对测试中发现的问题,给开发提单,直到问题最终解决。
11) 最后输出测试报告。
2. 怎么用Postman测试接口?
如果使用Postman测试接口:
其中1,2,3点相同,工具使用方面则比JMeter跟简单,工具的主要的步骤是添加对应的请求、填写主机URL及入参、添加测试套、运行测试套、分析结果出报告。
3. 在JMeter上如何把上一个请求的结果作为下一个请求的参数?
使用正则表达式提取器提取上一个请求的响应中的信息,保存一个引用名称比如abc,在下一个请求的参数中,用${abc}的格式来引用提取的结果。
常用的正则表达式格式:(.+?),其中.表示匹配任意字符串,+表示只匹配一次,?表示匹配到就停下来。
一般是我们功能测试完成最后两三天时间测试性能。
1、先是分析需求计算出并发数,TPS,响应时间和 CPU,内存,硬盘和网络IO这些指标。
2、制定测试方案,主要包括环境,计划和具体测试那些场景(如可靠性,并发,负载,压力测试等)
3、根据场景用Badboy录制脚本,导出为JMeter工具支持的脚本。
4、用JMeter工具打开脚本,进行脚本调试,加一些断言,监听器,参数化等。
5、接下来执行性能测试,然后主要收集监听器和收集服务器CPU,内存,硬盘和网络IO等分析是否满足需求,如果满足就输出性能测试报告。
6、如果指标不能满足,反馈给开发进行调优。调优后继续测试,一直到满足需求后最终输出测试报告。
1. Python怎么定义一个函数?
你可以定义一个由自己想要功能的函数,以下是简单的规则:
1) 函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
2) 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
3) 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
4) 函数内容以冒号起始,并且缩进
5) return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None
2 Python切片
3. Python上用过什么库/模块?
webdriver:定位和操作元素
time:设置等待时间
ActionChains:动作链,完成鼠标的相关操作
Keys:键盘的相关操作
WebDriverWait:设置显式等待
Expect_Conditions:针对单个元素,设置显式等待的场景
PIL:截图
Select:下拉选择框的操作
unittest python:自带的单元测试框架
HTMLTestRunner:运行脚本,生成报告
ddt:实现数据驱动测试,行为和数据分离
4. 你做过自动化测试吗?
我在上一份工作中,公司去年下半年也开始规划做Web 自动化,采用Python作为开发语言,通过Selenium WebDriver定位和操作页面元素,自动化框架用的是unittest。我主要负责写测试脚本。
假设一个测试团队有5个人:1资深(测试经理)+2~3个中级(自动化+手动)+1 个初级(手动)
5. 使用什么工具进行的自动化测试
使用的工具是Selenium(Web自动化工具)
6. 用的什么编程语言
用的Python
7. Selenium 用的是哪个版本的的?Python用的是哪个版本的?
用的是selenium 3.11.0和Python2.7.10
8. Selenium的工作原理?
1)对html元素定位
2)模拟对第一步定位到的元素进行点击、输入、选择等操作一句话:定位元素,操作元素。
9. 元素定位方法有哪些?
要点:8种定位方法
1) 根据元素的属性值定位,比如 id、name、class、标签名、链接文字和部分链接文字;
2) 根据CSS选择器定位;
3) 根据 XPath 定位;
10. 子页面里的元素怎么定位?
先切换到框架里,然后再定位,用switch_to_frame函数根据子页面id或name,切换到子页面;定位完了如果要再定位主页面的元素,要用switch_to_default_content 函数先返回主页面。
11. 怎么定位alert弹窗?或者这样问:怎么处理JS原生窗口?
要点:主要涉及点击弹窗确认按钮、强行关闭弹窗、获取弹窗中的文字等操作。
1) 点击弹窗的确定按钮,用如下函数:
driver.switch_to_alert().accept()
2) 强行关闭,点击右上角的叉叉,用如下函数:
driver.switch_to_alert().dismiss()
3) 获取弹窗里的文字,用如下函数:
driver.switch_to_alert().text
12. 怎么运行自动化用例并生成测试报告?
以unittest为例,我通常的做法是把用例加载到测试套中,做成一个脚本,在命令窗口下运行脚本,报告的生成用第三方模块HTML TestRunner来生成。
13. 怎么定位/操作图片中的验证码?
用tesseract OCR引擎处理图片中的验证码,步骤:
(1)对整个屏幕截屏,保存成png格式的图片;
(2)在截取的图片中定位验证码图片的位置坐标;
(3)根据坐标对验证码截图;
(4)在图片中提取验证码,输入到输入框。
随着互联网行业的不断发展,软件快速迭代、快速交付的需求日益凸显,软件测试人员越来越受到重视,逐渐从“幕后”走向“台前”,也将会面临更好的发展和更大的挑战。下面是小编带来的软件测试工程师面试技巧,欢迎阅读。
那如何深入软件测试?测试都有哪些方法?测试采用什么工具?自动化测试熟悉么?自动化测试具体都有什么内容?敏捷流程都有哪些环节,测试工程师在其中的作用是什么……接下来我就结合我的测试经验聊一聊测试工程师的面试要点和职业发展。
我是谁?
忘了自我介绍了,我是一名软件测试工程师。不知不觉,入行软件测试也有14年头了。待过中软国际、华为、IBM等公司。做过功能测试、自动化测试也做过性能测试,做过测试新人也做过测试测试管理,所负责的项目至今在各个领域系统运转良好,产生了极大效益。
同时我也长期在公司内担任讲师,负责软件测试理念和测试转型等内容的培训,获得过“集团金牌讲师”的称号。
如果要是从这14年中说出最宝贵的经验,我想其一应该是面试技巧和职业发展。下面我就来分享一下,希望可以帮助在测试行业迷茫和纠结的你们……
软件测试工程师的面试,不同于开发人员。
虽然都是软件从业人员,但是开发和测试侧重点不同,这样的细微之处却很少有人注意到。面试官可能因为对于测试工作理解的差异,提出的问题让面试者不知道该从何说起,而在求职过程中,信息的不对称使得测试工程师往往无法做到全面地表达自己。
严格意义上来说,尤其是在当前Agile架构或者DevOps模型下,软件测试工程师对于技术的理解广度和知识储备的广度,要远在开发人员之上。而一般开发人员的面试中的面试要点和问题,对于测试工程师来说,都是非常不适用的。
面试官技术出身的不同,其喜好或者技术特点,测试工程师往往也并不清楚,如何有针对性地回答,同时还能体现出自己的优势,另外企业是如何定义初级中级高级测试工程师,他们各自对于技术的要求是怎样的?这是一个非常值得谈一谈的内容。
知己知彼,百战不殆。如何从测试工作本身定位出发,从公司和面试官角度来谈测试工程师的面试要点,成功是事半功倍的。
九层高台,起于垒土。那么我们在讨论测试工程师面试的要点之前,自然要理解测试工程师的工作内容和主要闪光点是什么。
1、什么是软件测试?软件测试的工作内容都有哪些?
软件测试,顾名思义,是测试软件和控制软件质量的工作,后者在敏捷框架下被更多地提起。在敏捷框架下,软件的质量不仅仅是通过测试工作来控制,还包括了一整套流程和过程控制,因此测试在敏捷框架下称为QA。
也就是说,可以理解为软件测试工程师——Tester,是QA的一个真子集。严格来讲,敏捷框架下的QA和传统测试工程师实际上也是有很多区别的,这个问题我们放到以后再讲。
在这个框架下,测试工程师不仅仅要聚焦于软件测试工作,而是要从项目的开始就要介入,也叫测试前置。从需求澄清开始,QA就要在测试的角度对需求进行更细一级的了解,然后针对每个story中,开发内容是否达到需求的每个细节进行检查,同时还要控制项目进度,缺陷率等。
QA在一个标准的ScrumTeam中的地位是很高的,取决于QA对项目业务的熟悉程度,对需求的细节把握等等。可以这么说,在一个项目组中,QA是可以接替PM职务或者作为PM的Backup的。
PM、QA和Tester的关系如下图:
2、软件测试工程师应该具备的技能和素质是什么?
软件测试行业,虽然属于软件研发体系,但是因为工作内容和角度的问题,存在着自己独有的技能要求和职业素质要求。
在软件研发体系的要求之外,除开发的编码和对于各开发框架的了解,作为测试工程师或者QA,还有其他特定的要求。
由于软件研发行业的主要行为集中在编码,所以外界甚至不少从业人员对于软件研发的印象往往都很单一,甚至很多测试工程师也不清楚,作为测试工作,与软件研发相比,有哪些独特的要求?
形而上者谓之道,形而下者谓之器。一般来说,“道”是无实体的思想意识层面,“器”是指有形的工具或者流程,即“道”的具体实现。
那么我们就从“道”和“器”两个层面来简单了解一下,测试工程师应该具备的“器”和“道”分别都是什么。
【技能】
技能层面来说,首当其冲的就是沟通和协调能力,这个在QA身上更为明显。敏捷架构下,快速迭代的基础就是沟通顺畅及时和到位。在每个sprint中,需求的传达澄清和对齐,都是非常关键的,这直接从源头决定了产品的研发质量和研发成本。
在最初的需求澄清阶段,在参会人员中,不管是客户还是PM,都是从开发编码的角度正向理解需求的。此时,QA就需要从测试的角度,逆向挖掘需求,来填补其余人在需求挖掘上的空白,确保后期开发过程中,程序的功能在测试限定的边界内,从而降低项目风险和更正成本。
如果是采用了Jira和Confluence等敏捷工具的项目中,小到每个Defect的详细描述和重现定位,大到就此同开发人员甚至客户方的交流等等,这些都对于沟通和协调能力提出了很高的要求。
怎样用最简洁清晰的语言,将问题描述清楚,,提供尽可能详尽的有效信息,这个对QA的基本要求,也是很多工作中的基本要求。然而这个是在IT行业从业人员中,普遍存在的一个短板,这方面的能力是需要着重训练的。
如果这个项目同时还是牵扯到其他模块或者其他项目组,那么有关流程处理和数据准备等环节的协调,也是必须的。同样的,这也是QA进阶之路上的必备技能。
接下来就是测试工程师本身的一些工作技能,比如测试案例的编写方法,例如等价类划分法、边界值分析法、因果图法等等,通过不同方法和思路,可以做到尽可能全面覆盖测试点,挖掘出更多隐含的.测试场景。
还有测试工具的使用,可以提高工作效率,做到有的放矢。近些年兴起的自动化测试中,各种基于不同平台的自动化框架,各种不同工具之间的配合,以及不同的侧重点,例如性能测试、压力测试、极限测试。
都是基于测试工具的发展而形成的全新的测试手段。在工具和工作执行层面提高效率,这个就是在测试执行和具体的测试工作中,具体的增加和变化。
而通过训练和经验积累而成的,对测试scope的估算以及对于测试进度的把控等等,也是测试技能的一部分,对于测试工作的内容本身而言,这些也都是属于“形而下者”的范畴。
自然,这一切的基础,依然离不开上层建筑——“道”,也就是测试工程师本身的意识和职业素养的影响。
当然,软件测试工程师应该具备的技能和素质不是三言两语就可以说清的,更多的经验和诀窍我都整理到了《测试工程师面试技巧全方位指导》这门课里,每个点可能都需要串很多知识,当我们具备了测试技能和素质,我想,无论在哪家公司,做什么项目,都可以手到擒来。
我将如何讲授“测试工程师面试要点和职业发展”这门课程?
《测试工程师面试要点和职业发展》主要内容分为两部分:测试工程师的面试要点,以及测试工程师职业发展的路径。
解决了“我是谁?”“我该干什么”这样的基本理念,明晰了软件测试工程师逐步升级的路径,以及需要具备的能力和发展方向。也明确了作为测试工程师,应该具备的素质和技能,具备了这些条件之后,才能够在软件测试这条路上昂首前进。
接下来介绍了在敏捷架构下,测试工程师在其他职业方向进行发展的路线,以及在这些职业方向中,作为测试工程师原有的积累所带来的优势。
本课程中一个重点就是测试工程师和测试开发工程师的区别,以及两个职位的定义和职责。
经过这些课程内容,我们再回过头来看本文开始最初的那几个问题,就可以轻而易举地理解面试官提出问题的目的和意图。对于这几个问题,如果各位有了自己的答案并且可以侃侃而谈,那么就意味着,在面试的诸多问题中,最关键的基础类别问题已经不再是问题了!
你能收获什么?
相信通过本门课程的学习,你能对软件测试工作有最基本的了解。本课程是针对所有软件测试从业者,尤其是针对希望以软件测试工程师为出发点,在这一行业有所斩获,或者在到达一定职业高度之后通过转职获得更大发展的。
通过本课程的梳理和介绍,可以给诸多测试工程师以清晰的发展思路,同时给在这一行业中辛勤努力的同仁们一个发展的方向,从而延续自己的职业生涯,并有所提高。
发表评论
暂时没有评论,来抢沙发吧~