
若您的脚本没有使用Pytest或Unittest功能测试框架编写用例,则需要在您的用例集脚本中内置case_config.json文件用于平台识别您的用例,并在runTest.sh中声明如何执行您的用例。
假设脚本中有2条用例"case1"和"case2",代码如下:
# -*- coding:utf-8 -*-
import sys
def case1(arg):
print('case1 args' + arg)
def case2(arg):
print('case2 args:' + arg)
if __name__ == '__main__':
test_method = sys.argv[1]
test_args = sys.argv[2]
if test_method == "case1":
case1(test_args)
elif test_method == "case2":
case1(test_args)
else:
print('invalid method')
执行命令分别为:
python3 main.py case1 "arg1"
python3 main.py case2 "arg2"
则case_config.json可描述为:
{
"case_config": {
"max_case_time": 1800, #用例默认执行超时时间(单位:s)
"retry_times": 1, #用例默认执行失败后的重试次数
"cases": [{
"args": "arg1",
"retry_times": 1,#本次用例执行失败后的重试次数
"max_case_runtime": 1800,,#本次用例超时时间(单位:s)
"case_name": "test_1",#用例名称,需保证全局唯一
"file": "main.py",#用例执行文件位置(脚本根目录的相对路径)
"func": "case1"#用例函数名
}, {
"args": "arg2",#用例参数
"retry_times": 1,#本次用例执行失败后的重试次数
"max_case_runtime": 1800,,#本次用例超时时间(单位:s)
"case_name": "test_2",#用例名称,需保证全局唯一
"file": "main.py",#用例执行文件位置(脚本根目录的相对路径)
"func": "test_2"#用例函数名
}]
}
}
平台在执行测试时,会将case_config.json内用例的描述内容通过环境变量下发给runTest.sh文件,其中
$CASE_NAME 对应 case_config.json中的case_name
$CASE_ARGS 对应 case_config.json中的args
$CASE_FILE 对应 case_config.json中的file
$CASE_FUNC 对应 case_config.json中的func
对应的runTest.sh文件可填写为:
#!/bin/bash
echo $CASE_NAME
python3 $CASE_FILE $CASE_FUNC $CASE_ARGS
在您的用例集脚本中的根目录打包runTest.sh即可:
在case目录生成caseresult.json,即可描述用例结果,例如可以在runTest.sh中生成caseresult.json,其中CASE_LOG_DIR是环境变量,代表用例结果存放目录:
echo "{\"errorno\":0}" > $CASE_LOG_DIR/caseresult.json 代表用例执行成功
echo "{\"errorno\":1}" > $CASE_LOG_DIR/caseresult.json 代表用例执行失败
您也可以在代码中生成caseresult.json,其中CASE_LOG_DIR是系统环境变量代表用例目录,caseresult.json中的内容为{“errorno”:0}表示用例成功,{“errorno”:1}表示用例失败。