简介
小程序云测插件一般是用户手动在开发者工具提交任务。有些用户希望能够做到自动提交测试,将测试能力集成到devops流程中,做到定时或者自动触发。
现在云测插件新增第三方接口能力,支持直接用https接口调用的方式提测,方便用户将云测能力集成devops流程中。文档地址:
https://developers.weixin.qq.com/miniprogram/dev/devtools/minitest/api_exe.html
本文以Jenkins为例,详细介绍云测如何和Jenkins打通
环境准备
注:环境准备以Window10+Python项目+Git代码版本管理+Jenkins为例介绍,可根据需求准备环境,例如Linux操作系统,SVN代码版本管理,Java项目等
以下步骤非必须,如果已安装可以跳过
- 安装JDK 8
- 安装Python 38
- 安装Git
- 下载Jenkins (https://www.jenkins.io/download/)
- 安装Jenkins (可查看用户手册 https://www.jenkins.io/doc/book/getting-started/)
- 创建管理员用户
- 配置Git(这里以Git存储测试脚本举例,用户也可以用SVN等其他工具存储)
- 安装git插件
Manage Jenkins > Manage Plugins
安装 git plugins - 配置git工具
Manage Jenkins > Global Tool Configuration
- 添加凭据
Manage Jenkins > Manage credentials > 添加凭据
- 安装git插件
Jenkins实现小程序云测自动测试
-
新建Item
例如选择Freestyle project
-
配置
1. 选择GitHub项目
2.选择Git并添加凭据,在Additional Behaviours中选择Check out to a sub-directory
3.构建触发器,选择Build periodically
4.构建,选择Execute Windows batch command,并输入需要执行的命令
其中test.py脚本为请求云测第三方服务接口代码
class MiniTestApi: def __init__(self, user_token, group_en_id): self.token = user_token # 需要填写自己的token self.group_en_id = group_en_id # 项目的英文ID self.minitest_api = 'https://minitest.weixin.qq.com/thirdapi/plan' self.share_api = 'https://minitest.weixin.qq.com/thirdapi/share_url' def third_auto_task(self): """ 提交测试任务 :return: """ config = { "assert_capture": True, "auto_relaunch": True, "auto_authorize": False, "audits": True, "compile_mode": "pages/getOpenId/index?p=1&m=2" } data = { 'token': self.token, 'group_en_id': self.group_en_id, 'test_type': 2, 'platforms': 'android,ios', 'wx_id': '', 'wx_version': 3, 'desc': 'Minium测试', 'test_plan_id': 6, 'dev_account_no': 1, 'minium_config': config, } resp = requests.post( self.minitest_api, json=data ) resp = resp.json() print(resp) return resp def query_auto_task(self, plan_id): """ 查询测试任务 :param plan_id: :return: """ data = { 'token': self.token, 'group_en_id': self.group_en_id, 'plan_id': plan_id, } resp = requests.get( self.minitest_api, params=data ) resp = resp.json() print(resp) def share_url(self, plan_id): """ 获取报告分享链接 :param plan_id: :return: """ data = { 'token': self.token, 'group_en_id': self.group_en_id, 'plan_id': plan_id, } resp = requests.get( self.share_api, params=data ) resp = resp.json() print(resp) if __name__ == '__main__': minitest_client = MiniTestApi('xxx', 'xxx') # 提交测试任务 result = minitest_client.third_auto_task() if "plan_id" not in result["data"].keys(): exit(1) plan_id = result["data"]["plan_id"] time.sleep(10) # 查询任务状态 # status 1: 排队中 2: 测试中 11: 未发现Case 12: 测试结束 15: 任务超时 minitest_client.query_auto_task(plan_id) # 获取任务报告分享链接 # minitest_client.share_url(plan_id)
您好,请问git代码指的是本地写minium框架的测试代码吗
请问我如何指定特定的开发版小程序呢,每次devops提测的开发版都不是固定的账号打出来的?
赞