Skip to content
📔 阅读量:

PMS数据回填

测试单关联的用例,自动化测试对应的去跑这些关联的用例,并且将执行的结果回填的测试用例的状态里面。

本机执行时回填

PMS 数据回填主要有三种方式:

(1)异步回填

在用例执行的过程中,采用异步的方式去进行数据回填,直白的讲就是,第二条用例开始跑的时候,通过子线程去做第一条用例的数据回填,如此循环,直到所有用例执行结束;

这种方案的时间效率最高的,因为理论上用例的执行时间是大于数据回填的接口请求时间的,也就是说,当用例执行完之后,数据回填也完成了。

【方法一】配置文件

使用方法,在 globalconfig.ini 里面配置以下参数:(以下涉及到的参数配置都是在配置文件里面进行配置)

ini
PMS_USER = PMS账号
PMS_PASSWORD = PMS密码
SEND_PMS = async
TASK_ID = 测试单ID
TRIGGER = auto
APP_NAME = 这个参数可填可不填,但是填了可以提高用例的执行速度,因为在用例收集阶段可以指定到具体的应用库。(下同)

配置完之后,命令行触发:

shell
youqu manage.py run

【方法二】命令行传参

shell
youqu manage.py run -a apps/autotest_xxx -u ut001234 -p my_password --task_id xxxx --send_pms async

(2)用例执行完之后回填

等所有用例执行完之后,再逐个进行回填的接口请求,此方案时间效率比较低。

使用方法:

ini
PMS_USER = PMS账号
PMS_PASSWORD = PMS密码
SEND_PMS = finish
TASK_ID = 测试单ID
TRIGGER = auto
APP_NAME =

命令行使用方式和前面一样,只需要修改 --send_pms finish 即可。

(3)手动回填

所有用例执行完之后不做回填的接口请求,后续手动将结果进行回填请求。

用例执行时配置:

ini
PMS_USER = PMS账号
PMS_PASSWORD = PMS密码
SEND_PMS = finish
TASK_ID = 测试单ID
TRIGGER = hand
APP_NAME =

后续手动回填方法:

shell
youqu manage.py pmsctl --send2task yes

远程执行时回填

远程执行需要控制多台测试机同时执行用例,也就是说同一条用例会在多台机器上同时执行,但是执行结果可能不一致;

因此,远程执行的数据回填需要等所有测试机执行结束之后,服务端收集到测试结果,并对测试结果做处理(只要有1个机器上用例失败,那此用例为失败)之后,在进行数据回填;

使用方法:

shell
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 目录删掉,这样就可以重新做数据回填了;