新增接口自动化测试自定义步骤
目录
Summary
- 新增环境相关的自定义步骤,以新增robotframework接口自动化测试为例子
新增接口自动化测试自定义步骤
- 以新增robotframework接口自动化测试为例子,让DORY支持在执行应用发布后进行接口自动化测试
- 所谓环境无关是指不依赖于应用的发布环境,例如代码扫描,不同发布环境代码扫描的参数没有区别
- 所谓环境相关是指依赖于应用的发布环境,例如接口自动化测试,不同发布环境接口自动化测试的测试用例参数会有所不同
任务演示视频
- 演示如何让DORY支持在应用发布后执行接口自动化测试
制作robotframework接口自动化测试镜像
DORY自定义步骤的输入参数与输出参数:
输入参数文件
:输入参数文件
由DORY自动创建。DORY执行自定义步骤过程中会自动把运行以及步骤的执行参数(内置参数)以及用户输入的参数自动保存到步骤执行容器的输入参数文件
中,输入参数文件
默认保存在/tmp/dory-param-input.json
或者/tmp/dory-param-input.yaml
文件中(注意,输入参数文件路径可以配置,请根据实际配置进行相关设置)
输入参数文件
支持保存成json格式或者yaml格式,步骤执行容器中的代码可以读取输入参数文件作为输入参数,执行相关的步骤脚本输出参数文件
:输出参数文件
由步骤执行容器在步骤执行过程中的步骤脚本创建。DORY执行自定义步骤结束的时候,会读取步骤执行容器中的输出参数文件
,输出参数文件
默认保存在/tmp/dory-param-output.json
或者/tmp/dory-param-output.yaml
文件中(注意,输出参数文件路径可以配置,请根据实际配置进行相关设置)
输出参数文件
支持保存成json格式或者yaml格式,DORY在步骤执行结束后会读取输出参数文件
,用于控制步骤执行结果、输出文件以及需要保存到步骤执行记录中的所有参数输出参数文件
的doryStepFail
参数: 用于控制步骤执行结果是否失败,假如设置为true,即使步骤执行过程没有错误,步骤也会被标记为失败输出参数文件
的doryOutputFiles
参数: 用于控制步骤执行结果是否有文件需要输出,例如自动化测试的测试报告,如果需要保存出来,那么需要把测试报告的文件路径设置到doryOutputFiles
参数中输出参数文件
的其他参数: 将会保存到步骤执行记录的输出参数中,用于后续执行结果检索用途
- 制作robotframework镜像,DORY使用robotframework镜像进行接口自动化测试
|
|
-
robotframework镜像包含python3的运行环境,需要编写python3步骤执行脚本:
run_api_test.py
脚本,读取DORY的输入参数文件,根据测试文件目录和环境信息,在目录下搜索所有接口自动化测试用例,并执行接口自动化测试用例,最后根据执行结果设置步骤的执行结果以及输出测试报告- 读取DORY的输入参数文件
/tmp/dory-param-input.json
,格式例如:
1 2 3 4 5 6
{ "projectName": "test-project1", "moduleName": "tp1-gin-demo", "envName": "test", "path": "Tests" }
- 查找目录下所有*.robot测试用例,并执行测试用例(支持不同目录多个测试用例)
- 判断测试用例状态是否正常,如果不正常,设置输出参数文件的
doryStepFail
参数为true,把本步骤状态设置为FAIL
- 输出测试报告到
/tmp/dory-file-output
目录,并设置doryOutputFiles
参数为对应的接口自动化测试结果
- 读取DORY的输入参数文件
-
run_api_test.py
脚本文件:
|
|
- robotframework镜像的Dockerfile
|
|
- 制作robotframework镜像
|
|
设置自定义步骤配置
- 在dory-dashboard的
管理控制台
-自定义步骤
中新增接口自动化测试的自定义步骤配置
,样例如下图:
- 详细配置参见下边定义:
|
|
在项目定义中设置接口自动化测试的模块定义
- 在dory-dashboard的
项目定义
中新增testApi
自定义步骤的自定义步骤模块定义
,样例如下图:
- 详细配置参见下边定义:
|
|
在流水线定义中插入接口自动化测试步骤
- 在dory-dashboard的
项目定义
的流水线定义
中checkDeploy
步骤后边插入自定义步骤testApi
,样例如下图:
- 详细配置参见下边定义:
|
|
在代码仓库下对应目录创建测试用例
- 在代码仓库Tests/test目录下创建tp1-gin-demo.robot测试用例
- 该测试用例调用tp1-gin-demo微服务的接口,并校验接口返回的
message
字段是否等于hello world
|
|
执行流水线,在检测服务发布正常后进行接口自动化测试
- 在检测服务发布正常后插入了接口自动化测试
查看接口自动化测试报告
- 在步骤执行记录中可以看到相关输出的测试报告文件
- 测试报告如下图:
- 测试日志如下图: