PMS数据回填
测试单关联的用例,自动化测试对应的去跑这些关联的用例,并且将执行的结果回填的测试用例的状态里面。
本机执行时回填
PMS 数据回填主要有三种方式:
(1)异步回填
在用例执行的过程中,采用异步的方式去进行数据回填,直白的讲就是,第二条用例开始跑的时候,通过子线程去做第一条用例的数据回填,如此循环,直到所有用例执行结束;
这种方案的时间效率最高的,因为理论上用例的执行时间是大于数据回填的接口请求时间的,也就是说,当用例执行完之后,数据回填也完成了。
【方法一】配置文件
使用方法,在 globalconfig.ini
里面配置以下参数:(以下涉及到的参数配置都是在配置文件里面进行配置)
PMS_USER = PMS账号
PMS_PASSWORD = PMS密码
SEND_PMS = async
TASK_ID = 测试单ID
TRIGGER = auto
APP_NAME = 这个参数可填可不填,但是填了可以提高用例的执行速度,因为在用例收集阶段可以指定到具体的应用库。(下同)
配置完之后,命令行触发:
youqu manage.py run
【方法二】命令行传参
youqu manage.py run -a apps/autotest_xxx -u ut001234 -p my_password --task_id xxxx --send_pms async
(2)用例执行完之后回填
等所有用例执行完之后,再逐个进行回填的接口请求,此方案时间效率比较低。
使用方法:
PMS_USER = PMS账号
PMS_PASSWORD = PMS密码
SEND_PMS = finish
TASK_ID = 测试单ID
TRIGGER = auto
APP_NAME =
命令行使用方式和前面一样,只需要修改 --send_pms finish
即可。
(3)手动回填
所有用例执行完之后不做回填的接口请求,后续手动将结果进行回填请求。
用例执行时配置:
PMS_USER = PMS账号
PMS_PASSWORD = PMS密码
SEND_PMS = finish
TASK_ID = 测试单ID
TRIGGER = hand
APP_NAME =
后续手动回填方法:
youqu manage.py pmsctl --send2task yes
远程执行时回填
远程执行需要控制多台测试机同时执行用例,也就是说同一条用例会在多台机器上同时执行,但是执行结果可能不一致;
因此,远程执行的数据回填需要等所有测试机执行结束之后,服务端收集到测试结果,并对测试结果做处理(只要有1个机器上用例失败,那此用例为失败)之后,在进行数据回填;
使用方法:
youqu manage.py remote -c uos@10.8.13.xx/uos@10.8.13.yy -a apps/autotest_xxx -u ut001234 -p my_password --task_id xxxx --send_pms finish
执行结束之后在 report
目录下会有 pms_xxx
开头的目录,里面保存了所有远程测试机的测试结果,以及汇总的结果;
可能遇到的“问题”
有同学可能会发现,怎么回填一次之后,后面想再次回填就不生效了;
这是因为为了应对前面提到的多种数据回填的方式,在 report
目录下会有 pms_xxx
开头的目录,用于记录了用例的执行结果和回填情况,如果这条用例之前已经回填过了,后续就不会再此触发回填了;
如果你想重新做回填,你可以把 report/pms_xxx
目录删掉,这样就可以重新做数据回填了;