背景是这样的:
这个组的测试人员每跑一个case都要上传测试结果附件到QC。每个待测功能模块可能包含几十上百的case。于是手工上传测试结果变成了繁重的体力劳动。令人惊讶的是我们的工具开发组竟然说做不了QC的测试结果附件上传。更让我惊讶的是,测试人员竟然真的手工上传结果上传了大半年了。
以下我写了个小工具解决这个问题:
思路很简单,调用hp提供的ALM Rest api接口。把一个个用户操作转化成http请求。然后按照接口要求,把附件一个一个上传到指定的QC test instance上。
主要用的库是:
requests:负责发送http请求
BeautifulSoup4:负责解析QC服务器返回的响应。
整个工具非常简单。
具体步骤如下:
先让用户登录进QC
[2017-05-17 13:57:25,023] Starting new HTTP connection (1): XXXXX.com [2017-05-17 13:57:25,430] post http://XXXXX.com:80/qcbin/authentication-point/authenticate [2017-05-17 13:57:25,430] headers = {'Authorization': 'Basic XXXXXXX'} [2017-05-17 13:57:25,430] 200 OK [2017-05-17 13:57:25,430] --------------------请在文本框输入文字 |
(上面这个带了时间戳的东西是我的log。每个请求都会自己记下来发了些啥。)
然后按照用户给定的的test_set_id去QC里搜索一下这个test set下的test instance有哪些。
[2017-05-17 13:57:25,430] -------------------- [2017-05-17 13:57:26,303] get http://XXXXX.com:80/qcbin/rest/domains/{Domain name}/projects/{Project name}/test-instances?query={contains-test-set.id[XXXXXX]}&fields=id,test-id&page-size=2000 [2017-05-17 13:57:26,303] 200 OK [2017-05-17 13:57:26,303] -------------------- |
然后每个test instance id去查一下qc里对应的test id,也就是