1.为什么做自动化?
答:减少繁琐的重复操作,提高测试的工作效率(调用接口一致,但是参数不一致,结果不一致的情况)
2.自动化框架有什么好处,自动化框架有什么优点?
答:1)1.手工测试与自动测试完美结合,避免重复工作
2.配置灵活,根据需求快速切换测试环境和相应测试数据(/测试用例)
3.常用功能封装,逻辑清晰,便于维护
4.统一执行入口,管理测试用例集
5.持续集成,定时构建,快速反馈
2)自动化框架将维护数据与代码分离,把结构分为存储测试数据的数据层、测试用例存放的测试层、存放通用的测试方法封装的逻辑层。
使得即使代码需要更新也只用更改其中的小部分,减少了代码的冗余,提高了代码的可读性、可维护性(他人维护)、可扩展性。
3.正则使用
4.自动化的流程?
答:1)准备测试数据
2)设计Excel数据
3)读取Excel数据
4)参数化替换
5)发起请求(请求方式 + 请求url拼接 + 参数转换成字典 + 拿到返回)
6)解析并返回(报错信息也算返回)
7)断言
5.post请求的四种参数?
答 :1)application/x-www-form-urlencoded :一组键对值
2)multipart/form-data:from形式,表单
3)application/json:json
4)text/xml:xml
6.post和get的区别?
答:本质上没有区别,都是tco/ip协议。但是为了区分请求方式,一般使用get获取数据,post发送数据;get数据放在url中,post数据放在body中
7.状态值302/403/404/503?
答:302:临时重定向
401:请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403:服务端理解请求但是拒绝执行,一般属于权限不够
404:请求失败,请求所希望得到的资源未被在服务器上发现。一般状态为url错误或者服务器异常
500:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现。
503:服务器目前无法使用,通常,这个是暂时状态,一段时间会恢复
8.公司有用到第三方服务,出了问题,第三方不承认,日志也无错误显示,怎么处理?
答:定位问题所在代码,在预发布或者测试环境调用问题所在代码内的第三方接口,根据接口返回的code、msg、status反馈第三方。同时建议开发在第三方接口调用时新增日志记录,调整日志记录级别,避免日志占用过多内存。
9.接口自动化中的参数关联怎么处理?
答:可以使用反射(映射)存储参数,然后使用正则快速的查找替换下一个接口的关键参数
10.自动化结果怎么校验?
答:断言(对比希望结果和实际结果返回)和数据库效验
11.使用的自动化框架是什么?
答:unittest + request/suds + openpyxl + pymysql + ddt + jenkins
12.具体在这个项目中,怎么应用到实际?对自动化结果的分析?
答:针对所有的后端接口进行一次实现,实现完成后自动集成到jenkins上,配置定时执行,快速结果反馈给相应开发。通常在回归测试和新功能的冒烟测试中使用,在接口参数确定后就可以开始编写自动化测试用例,开发完成后执行。
在所有测试用例执行完成后会自动生成html报表,可以统计出通过用例、失败用例数量、失败用例的原因和通过率(bug曲线图:低(覆盖面少)高(覆盖面大)低(bug修复)平稳)