你们的自动化(用例执行自动化)流程是怎么样的?
1、制定测试计划(明确测试范围-自动化可行性、分层测试,测试目的-功能、非功能,测试内容-需求,方法,资源人力要求)
2、评审
3、分析测试需求(需求转化为测试需求),明确测试点,优先设计项目中相对稳定且相对重要的模块。
4、设计测试用例
5、搭建自动化测试框架
6、编写测试脚本,把具体的测试用例脚本化(包含准备,执行,断言,清理四部分)
7、执行测试
8、获得测试结果
9、跟踪缺陷
10、持续集成(一个完整的持续集成系统包含:一个自动构建过程,包括自动编译、分发、部署和测试)
你在自动化测试中遇到什么问题?
测试脚本重复代码过多,难以维护。引入 PO 模型,参数化。
被测平台不稳定,经常导致元素定位失败
自动化测试的常见使用场景?
回归测试:通过自动化测试快速验证是否引入新的缺陷,以及旧的缺陷是否修复成功
冒烟测试:在手工测试之前先跑一轮自动化测试,保证项目主流程没有问题
在需要生成大数据量的时候也可以用自动化测试
线上巡检:构建自动化测试每日巡检,用于每日实时监测线上产品主流程的稳定性和可用性
固化资产:通过自动化测试可固化测试资产(流程、工具、代码、文档)
建立测试与代码的覆盖联系:通过自动化工具能够确定测试用例的覆盖路径,确定测试用例集对程序逻辑流程和控制流程的覆盖
如果让你来从零主导,如何开展自动化测试?
前期准备:
评估被测项目是否适合做自动化测试(什么样的项目、团队适合开展自动化测试?)
评估被测项目适合在哪些功能模块做自动化测试(什么样的功能模块适合开展自动化测试?)
确定使用何种测试工具、测试框架
评估开展自动化测试需要哪些资源,包括:人员、机器、时间;
当前可用或是可以申请到的资源;
如何在不影响日常测试工作的前提下,开展自动化测试工作;
启动自动化测试工作:
确定自动化测试框架的开发原则;
搭建自动化测试框架;
确定自动化测试用例的编写原则;
根据功能测试用例,筛选可转换为自动化测试用例的用例集,评审;
编写自动化测试用例;
评审自动化测试用例;
编写自动化测试脚本;
调试自动化测试脚本;
运行自动化测试脚本;
输出测试结果,将报告发送至同事邮箱;
后期工作:
完善自动化测试用例;
定期根据实际情况,调优自动化测试脚本、框架;
集成 CI,定时执行自动化测试脚本,自动发送测试结果到同事邮箱;
如何挑选自动化测试框架/工具?
根据测试类型进行初步区分:
接口自动化测试;UI 自动化测试;性能测试;
接口自动化测试:
工具:postman(入门)、jmeter(高级)
若需要结合代码更加推荐用 jmeter。
代码:Python + Requests + 单元测试框架(Unittest、Pytest)、Cypress、HttpRunner、RobotFramework
UI 自动化测试:
app 端:Appium、Airtest、RobotFramework
小程序:MiniProgram
Web 端:Selenium、Cypress、RobotFramework
Window 端:Cypress(electron 框架的应用)、Airtest
性能测试:
Jmeter(开源,可二次开发)
Loadrunner(付费)
自动化脚本可能出错的原因?
配置环境引起:
自动化测试脚本的配置;
对测试程序进行配置。如:是否还原初始设置、是否删除某些数据。
对浏览器进行配置;
对与测试程序有关的程序或影响脚本稳定性的程序进行配置;
非配置环境引起:
网络延时,识别对象的同步问题;
未知因素引起脚本失败;
未知因素引起脚本运行中断;
自动化脚本本身使用了不稳定的因素;
脚本的继承性,上个脚本失败导致了下一个脚本也失败。
提高脚本稳定性?
提高脚本的稳定性:
既要满足稳定的要求,又要兼容不同的环境、平台等
稳定性,即自动化的脚本能重复使用,且脚本不报错,系统报错除外
兼容性,即是能在不同的平台、环境下运行
解决方案:
为了能重复运行脚本,应在运行之前、以及运行完后进行数据清理,分为前置清理、后置清理;
数据尽量不要写死,固化的数据容易被别人修改,尽量目前的执行单元做到数据的可配置化,做到集中维护,也可以通过依赖其他接口的动态生成,这样避免原来写死的数据失效;
脚本异常处理,加入失败重跑机制,如遇到失败,设置重试次数;
提升环境稳定性,包括自身环境稳定性和第三方系统环境稳定性(将测试环境独立出来,可灵活配置运行环境);
Windows、Linux环境下文件路径要做兼容,因为两个系统获取文件路径的方式不一致;
异常捕获处理,有异常跳过、或标记;
确保用例的完整性、独立性,可耦合,可独立运行;
依赖第三方服务的接口需要设置合理的超时时间;
持续验证,保持一定的运行频率,比如每日巡检等,避免因长时间未运行和自身脚本成熟度不够高,导致阶段性维护时间过长。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
不论遇到多少挫折,心中的梦想永远是前行的动力,努力是成就的基石。坚持奋斗,燃起内心的火焰,不负青春,追寻自己的光芒,在辉煌的舞台上绽放无悔的篇章!
勇往直前,不问结果,只为那份努力和拼搏的坚持;奋斗的道路虽曲折,但收获的成长与收益永远超乎想象。相信自己的实力,敢于追逐梦想,用汗水铸就辉煌,书写不朽传奇!
不论起点如何,只要心存追求,坚持不懈,每一次的努力都是向成功迈出的一步。勇敢面对困难,无惧失败,用激情和执着书写自己的辉煌篇章,让奋斗成为生命最美妙的旋律!