软件自动化测试方案及计划&用例设计
目录
一、目的:
- 提高测试效率
- 降低测试成本
- 更频繁的执行覆盖
- 更好的时间利用
- 仿真作模拟
二、自动化测试范围:
(1)系统范围:
模块
功能点
覆盖范围
Wifi蓝牙模块
配网
路由兼容性
机器运动
上报数据校验
根据协议参数设定范围
Slam
建图
验证地图
IOT后台
数据流校验
协议涉及点
(2)阶段范围:
自动化测试应用主要被应用于提测前的冒烟测试,以及系统测试之后的回归测试阶段
(3)自动化任务:
- 测试方案制定
- 测试点提取分析
- 测试框架搭建
- 脚本代码编写
- 测试报告输出
- 持续集成
- 代码维护
- 框架构思:
- 二次封装思路:
整个自动化测试脚本采用面向对象的封装思想,尽量将一些可配置的模块单独提取出来,便于后续操作配置,使整个项目更加灵活多变,便于后续迭代和二次开发,封装思想主要体现在测试环境中可配置,包含:测试用例导入,测试数据和脚本分离,文件路径采用相对路径表示等。基于PMO模式
- 数据驱动实现:
数据驱动这里采用pytest中的装饰器,@pytest.mark.parametrize来体现,通过它我们可以复用测试脚本,达到数据驱动的目的,使用同一个测试用例来验证不同的测试参数
- Yaml测试用例库:
通过编写组装测试参数的公共函数,来读取YAML文件中的参数数据。
- 拓扑逻辑图:
- 测试框架选型:
(1)整体体型:
综合测试金字塔模型以及本项目流程特性,本次自动化实现主要以MQTT接口协议的自动化形式完成,开展以paho-mqtt为核心机制,以pytest为测试框架,gitlab实现项目代码管理,jenkins实现持续集成,并选用python作为编程语言实现脚本,allure作为自动化测试报告,使用企业微信或者钉钉作为自动化构建通知
(2)python插件库:
Python:3.10.3
Pytest:6.2.5
Pyserial:3.5
pytest-rerunfailures:10.2
Allure-pytest:2.9.45
Allure:2.15.0
Paho-mqtt:1.6.1
Locust:2.13.0
PYyaml:6.0
allure-python-commons:2.9.45
(3)自动化测试工具:
Jenkins:2.346
企业微信或钉钉机器人通知
- 自动化测试任务:
(1)制定测试方案:
脚本编写前,需要对项目有一个整体把控,合理预估接口数量与复杂度,结合版本迭代时间,预估自动化脚本开发时间,并制定出相应的接口自动化方案
(2)提取分析测试点:
根据定义好的接口自动化测试范围,分析每个接口的测试点,包含协议方式、传入参数、返回参数这个过程中,需要和相应的开发对接清楚在测试范围内的接口相关信息,并提前在调试过程中调通。
(3)搭建测试框架:
此次接口测试使用python语言为开发语言,选用pytest测试框架,yaml文件作为自动化用例库管理,目的达成可配置,可管理,能自动运行测试脚本,自动生成测试报告。
(4)编写测试代码:
脚本首先需要不需要覆盖到所有接口,先预计挑选几个重要接口进行覆盖测试,等框架编写完成后,整体流程确认调通无误后,再继续维护完善自动化测试脚本,覆盖更多的接口。
(5)持续集成:
初次代码完成后,需要对现有自动化测试脚本进行持续集成开发,不断完善尚未覆盖的功能点,将这些功能点加入到自动化测试范围内,使得整个自动化测试程度可以进一步加深覆盖点。
(6)脚本维护:
自动化测试脚本是阶段性维护在整体自动化脚本阶段完成后,对每个迭代周期需要将包含项目的迭代维护过程中对接的接口有改动的部分。和后续加入接口自动化覆盖等
(7)金字塔模型:
根据Mike Cohn的测试金字塔,测试组合应该由下三层组成:
- 单元测试
- 服务测试
- UI测试
(8)持续集成机制:
这里选用jenkins来实现持续集成,通过将代码提交到gitlab上,使用jenkins构建配置,每次构建拉去最新的代码,并运行pytest脚本,运行结束后绑定allure报告并输出在jenkins上,将报告通过邮箱、企业微信、钉钉等方式发送出来直接访问查看。
版权归原作者 stepan.jiang 所有, 如有侵权,请联系我们删除。