持续集成六接口自动化测试

部署完成,需要触发自动化测试任务

之前,搭建了一个测试平台,用于维护接口的测试用例,平台中提供一个url,用于触发整个测试计划的执行

该地址支持get或者post请求,post请求时,会把请求的参数记录到执行日志里面(比如传入调入方身份信息 等内容)

结果返回共执行了多少个用例,成功多少,失败多少

那现在的目标是,在Jenkins中调用该url,同时根据返回的结果来判断是否通过

仔细想了想还是通过python来调用更简单

新建一个py文件,

# -*- coding:utf-8 -*-
import requests
import json
import sys


# 初始化结果
ff = open(r'autoTestPollAPI.txt', 'w', encoding='utf-8')
ff.write("1")
ff.close()

build_id = sys.argv[1]
build_url = sys.argv[2]
father_id = sys.argv[3]
father_url = sys.argv[4]

version = sys.argv[5]
url = "http://10.101.20.58:8000/runTaskForJenkins/5"    # 触发测试计划的url
data = {"build_id": build_id, "build_url": build_url, "father_id": father_id, "father_url": father_url, "version": version}
rel = requests.post(url, data=json.dumps(data))
text = rel.text
# text = rel.text.encode('latin-1').decode('unicode_escape')
print(text)
res = json.loads(text)
f = open(r'autoTestPollAPI.txt', 'w', encoding='utf-8')
if res['fail'] > 0:
f.write("1")
else:
f.write("0")

f.close()

 



然后 jenkins 执行该文件即可
新建一个自由构建任务
Build 执行windows批处理命令,

 参数过构建过程加一个版本号

用例测试通过后,更新项目的当前版本号,测试不通知,则获取当前版本号,触发回滚任务

 

  

@echo off
d:
cd D:/AutoTest
python AutoTestPollAPI.py %BUILD_NUMBER% %BUILD_URL% %f_id% %f_url% %BUILD_NUMBER%
set res=D:\AutoTest\autoTestPollAPI.txt
rem
set /p a=<%res%
echo.%a%
if %a% equ 1 (exit 1) else (exit 0)

 

执行python之后,写入测试结果,批处理直接读取该文件 

结果是1  执行 exit 1 标识失败 ;结果是0 执行exit 0 ,标识成功

 

如果  提示  系统无法执行指定的程序    服务-jenkins 设置管理员账号

 

 

提示 不是内部命令 

 

 

 

 

 

 

添加一下环境变量  保存  重启jenkins

 

该任务由部署任务构建成功后来触发

下面就是jenkins多任务调用

 

 

 




posted @ 2019-02-13 15:01  二到不知处  阅读(645)  评论(0编辑  收藏  举报