目录:导读
前言
1、你有没有做过自动化测试?
我在xx项目中实施了web自动化测试,我们项目中搭建自动化测试框架技术:Python+Selenium+Pytest+ddt+Jenkins,然后用的POM分层的模式(面向对象思想),数据驱动使用的是excel+ddt的驱动模式,我在这个自动化测试实施的项目里所负责的那些模块那些测试用例的自动化代码编写
我在xx项目中实施了接口自动测试平台搭建,技术栈:python+django+Pytest+vue3+ddt+jenkins…
2、你是如何在公司里面实施自动化测试的?
公司目前展开自动化,希望你能够承担自动化的实施过程;
公司已经在开展自动化了,想借鉴一下;
1)项目组做自动化的可行性分析自动化率到什么程度
项目周期比较长 一年以上,需求不会频繁变更,自动化脚本能够持续反复的使用
2)自动化工具selenium robotframework调研以及demo演示
3)由leader搭建自动化测试框架,并且在项目中逐步的实施,发现框架的问题并改善
4)把自动化流程化,框架出使用文档以及规范文档
5)生成定制的报告 并继续完善框架
3、接口自动化如何设计测试用例?一个接口你会设计多少个测试用例?(20-30)
考虑:业务逻辑,入参,通过等价类边界值场景法来设计
1)设计:正例 (两个)请求方式 get/post
2)反例
鉴权反例:token,key:为空,错误,过期;
参数反例:必须项检查,长度规则,类型规则,日期;
错误码覆盖;
其他的关注点:分页,图片格式,大小;
4、接口自动化测试框架中接口关联你们是怎么处理的?
postman和jmeter如何处理接口关联?
json提取器、正则表达式、cookie提取器
1)通过一个单独的extract.yaml文件来保存所有的关联字段,中间提取的变量这个变量在所有的测试用例之前清空
清空通过
unittest:setup_class
pytest:conftest+fixtrue
2)在测试用例的yaml里面通过一级关键字extract提取 提取支持json提取的正则表达式提取
3)在其他的接口的yaml文件里面通过{{}}提取或者${}的提取
5、你有从零开始独立搭建过自动化接口自动化测试框架?
我在xx项目搭建的接口自动化测试框架所使用的核心技术:
request+pytest+allure+parametrize+jenkins
包装:basepage基础封装,testcase封装
requests二次封装,日志收集模块 yaml配置文件封装
封装的这个项目规则:
YAML格式用例的约定
1)必须包含一级关键字:name request validate
2)在request关键字下必须包括:method,url,data,如data没有的话那么输入默认值{}
3)提取变量使用一级关键字extract。支持json提取和正则提取(.+?)和(.*?)取值使用{}
4)可以使用热加载的方式调用debug_talk.py中debugTalk类里面的方法 通过${}调用方法
5)支持equals、contains两种断言
6)使用parameters做csv文件的数据驱动,通过$csv(appid)这种格式取值
接口自动化常问
1)网络协议 http cookie session token
get/post区别
2)Mock 是什么 在接口测试领域下一般在什么情况使用 以及基于python如何实现Mock
遇到很难获取的数据 通过模拟的形式来将这些数据获取到手
def 接口_正式():
return 正式接口
def 接口_模拟():
return 模拟接口
3)接口关联
关注的点在于你的接口自动化测试框架如何实现的;
关键字驱动+数据驱动+测试用例管理+关联接口的公共数据管理;
基于yaml进行数据管理 结合全局变量管理公共数据+Pytest/Unitest是西安接口关联的业务 所有的系统接口业务链非你别以不同的文件进行管理;
4)框架是如何设计的?框架的设计方法
技术:
关键字驱动+数据驱动
将常用的操作行为进行二次封装,生成一个自定义的关键字类,把所有的封装函数放在类里面,便于后续进行调用
优先考虑Excel数据驱动,结合Python发射机制+openpyxl模块来实现excel数据内容的读取与执行,在定义规范化的Excel文件的测试用例格式
再结合日志信息配置、框架的测试环境配置、服务器的配置、数据文件的读取路径配置、公共参数配置等进行细化的配置模块的研发管理
再优化考虑基于Unittest/Pytest实现用例管理、定义数据读取的驱动参数
集成HTMLTestRunner或Allure测试报告,继承邮件,集成Jenkins实现自动化测试构建
分布式测试框架部署的技术实现+用例并发实现
5)接口测试中的加密参数如何处理?
了解接口使用的加密方法md5 rsa等;
检查接口测试工具是否支持这种加密算法jmeter支持MD5直接使用对应功能就行;
如果是公司内部特有的算法调用公司的加密算法实现加密
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
生命的意义不在于站在巅峰,而是在于攀登的过程。用汗水浇灌梦想的花朵,勇往直前,一步步走向成功的彼岸。相信自己的力量,不断奋斗,成就非凡。
心怀梦想,努力奋斗,无所畏惧。每一次挑战都是成长的机会,每一份付出都在铸就辉煌。坚持不懈地追求,才能绽放属于自己的光芒,创造无限可能!
困难不是终点,而是成长的起点。勇敢面对挑战,超越自我,为梦想努力奋斗。相信自己的才能和潜力,坚定前行,终将书写属于自己的辉煌篇章。