以下内容为长沙达内小编为大家总结的“自动化测试常见面试题”~
1、使用什么测试框架对之前的项目进行自动测试?告诉我怎么做?对自动化的理解?
答:(JUnit、unittest、TestNG、pytest、python语言是首选,那些使用过pytest或unittest框架的人;只有selenium比较弱)
2、使用了什么测试框架来进行上一个项目的自动化测试?告诉我怎么做?对自动化的理解?
答:最好能够回答独立负责和封装的页面元素、断言封装、请求封装和参数获取方法的具体实现
3、get和post的区别是什么?
(1) 获取请求资源数据,post将要处理的数据传递给服务器
(2) get传递的数据大小不超过2KB,post没有限制
(3) get请求的参数将公开并显示在URL上,post请求的参数位于requestbody中,因此post比get具有更高的安全性
(4) get请求的静态资源将被浏览器缓存,而post不会被缓存
(5) get传递的数据类型是text,post是text或binary
(6) 当get请求被撤销时,它是无害的。当post请求被撤销时,它将再次执行
get和post的使用场景:
(1) 传递机密信息时必须使用Post
(2) 您只能在查询获取数据时使用get
(3) post请求的速率将低于get请求,因为get请求生成TCP数据包;post请求生成两个TCP数据包
4、//*[contains(@text,“登录”)] 是什么意思?
答:检查包含登录关键字的所有元素
5、如何排除自动化失败的情况?
A:看看错误日志。如果您能根据级别清楚地解释故障排除:手动检查应用程序中是否存在错误,确认它不是错误,以及新版本是否引入了新的更改。调试脚本,查看脚本是否因为不等待元素出现而运行,以及元素上是否有其他元素。该操作是否对其他元件起作用
6、讨论接口测试和接口自动化的过程。请求的内容是什么?
(1)过程:获取接口文件,根据文件设计接口参数,获取响应,分析响应,验证结果,判断测试是否通过。
(2) 请求内容:
1.它封装了get、post等;
2.以关键字参数的形式封装各种请求参数,如参数、数据、头、令牌、cookie等;3.封装响应内容、状态代码、JSON()、cookies、URL等;
会话对象,可以交叉请求;
7、编写接口测试用例的要点是什么?
(1)必填字段:请求参数为必填字段,可选字段
(2)合法性:输入和输出合法和非法参数
(3)边界:请求参数边界值等
(4)容错:处理大容量数据、频繁请求、重复请求(如订单)、异常网络等
(5)响应数据验证:断言、数据提取和传输到下一级接口
(6)逻辑验证:如果两个请求的接口有严格的顺序,则需要测试传输顺序
(7)性能:同时模拟和测试接口,逐步加压并分析瓶颈
(8)一些业务请求、XSS(例如恶意数据、未经验证的数据、敏感数据、XSS)
8、如何使用邮递员?高级用法?mock的应用场景和基本用法?
A:基本用法:输入参数和输出参数验证返回;
B:环境–配置不同的环境参数。Globals是用来设置全局变量的。预请求脚本–配置环境变量的使用或预脚本处理;
C、团队可以更好地并行工作。前端和后端人员只需定义接口文档即可并行工作,而不会相互影响。他们只在最终联合调试阶段进行密切沟通,并启动TDD(测试驱动开发)模式,即测试驱动开发;
9、你把上次自动测试的数据放在哪里了?你怎么用它?如何管理公共变量?管理测试用例的方法?如何提高用例覆盖率?接口测试相关性接口实现方法?
答:测试数据存储摘要:
(1)对于account和password,这种全局参数可以从命令行参数中单独提取并写入配置文件(如INI)
(2)对于一些一次性消费数据,例如注册,可以通过随机函数生成不同的数字
(3)一个接口有多组测试参数,可以参数化。数据可以输入yaml、文本、JSON和excel
(4)可以重复使用的数据,例如需要在订单的各种状态下创建的数据,可以放入数据库,每次初始化,使用后清理
(5)对于邮箱配置的一些参数,可以使用ini配置文件
(6)对于所有独立的接口项目,可以使用数据驱动模式,用Excel/CSV管理测试的接口数据
(7)对于少量静态数据,例如一个接口的测试数据,只有2-3组,可以写入PY脚本的开头,并且在十年或八年内不会更改。
10、如何处理不可逆操作,例如删除订单?如何测试接口?
这个问题测试创建数据和请求接口数据的能力。他们中的许多人需要依赖以前的状态
例如,工作流流向具有不同状态和操作权限的不同人员。在测试时,应该测量每个状态,因此您需要能够自己创建数据。
通常,手动测试和创建数据,并直接更改数据库中的字段状态。自动化也是如此。您可以使用Python连接数据库来创建数据,并进行添加、删除、修改和查询操作
测试用例操作前、设置数据准备、操作后、拆卸数据清理