文章目录
前言
本文从API接口自动化测试脚本编写开始,项目上传至Github,再使用Jenkins定时任务去Github上拉取最新项目代码,并构建任务执行完成,发送至指定邮箱的过程。
一、API接口自动化测试脚本编写
1.需求分析
项目需求:输入一个中文词语,分别使用百度翻译及有道翻译,查询其英文单词,校验是否一致。
2.测试用例编写
| 用例编号 | 用例名称 | 步骤描述 | 预期输出 |
|---|---|---|---|
| test_fy_001 | 分别调用两个翻译接口查询“测试”,校验响应结果相同 | 1.调用百度翻译查询接口,输入“测试”,查看响应结果 2.调用有道翻译查询接口,输入“测试”,查看响应结果 | 查询出的响应结果相同 |
3.测试脚本编写
3.1百度翻译
百度翻译的接口权限申请,点此跳转,申请后在开发者信息里可以查看到你的appid及密钥。

百度翻译的脚本如下:
# -*- coding: utf-8 -*-
# @Time : 2022/8/7 10:52 PM
# Author : 拒绝内卷的小测试
import requests
import hashlib
import time
def bd_fy(word):
url = 'https://fanyi-api.baidu.com/api/trans/vip/translate'
header = {
'Content-Type': 'application/x-www-form-urlencoded'
}
# 后台提供开发者信息APP ID、密钥
appid = "你申请的appid"
key = "你申请的秘钥"
# 接口文档定义随机数,没写几位,按举例的十位来填吧
salt = str.split(str(time.time()), ".")[0]
sign = appid + word + salt + key
# 生成appid+q+salt+密钥的MD5值
md5 = hashlib.md5()
md5.update(sign.encode('utf-8'))
data = {
"q": word,
"from": "auto",
"to": "en",
"appid": appid,
"salt": salt,
"sign": md5.hexdigest()
}
response = requests.post(url=url, headers=header, data=data)
text = response.json()
fy_word = text["trans_result"][0]["dst"]
print(fy_word)
return fy_word
if __name__ == '__main__':
bd_fy(input('请输入您要翻译的内容:'))
3.2有道翻译
有道翻译的接口权限申请,点此跳转,申请后在开发者信息里可以查看到你的appid及密钥。

有道翻译的脚本如下:
# -*- coding: utf-8 -*-
# @Time : 2022/8/8 9:50 PM
# Author : 拒绝内卷的小测试
import hashlib
import uuid
import requests
import time
def yd_fy(word):
url = 'https://openapi.youdao.com/api'
header = {
'Content-Type': 'application/x-www-form-urlencoded'
}
time_curtime = int(time.time())
uu_id = uuid.uuid4()
app_id = "你申请的appid"
key = "你申请的秘钥"
sign = hashlib.sha256((app_id + word + str(uu_id) + str(time_curtime) + key).encode('utf-8')).hexdigest()
data = {
'q': word,
"from": "auto",
"to": "en",
'appKey': app_id,
'salt': uu_id,
'sign': sign,
'signType': "v3",
'curtime': time_curtime
}
response = requests.post(url=url, headers=header, data=data)
text = response.json()
fy_word = text["translation"][0]
print(fy_word)
return fy_word
if __name__ == '__main__':
yd_fy(input('请输入您要翻译的内容:'))
3.3断言
# -*- coding: utf-8 -*-
# @Time : 2022/8/8 10:45 PM
# Author : 拒绝内卷的小测试
import pytest
from bd_fy import bd_fy
from yd_fy import yd_fy
# 断言查询出的响应结果相同
@pytest.mark.parametrize("word", ["测试"])
def test_fy_001(word):
bd = bd_fy(word)
yd = yd_fy(word)
assert bd == yd, f"百度翻译的结果为{bd}, 有道翻译的结果为{yd}"
if __name__ == '__main__':
pytest.main()
3.4测试用例执行,生成测试报告
# -*- coding: utf-8 -*-
# @Time : 2022/8/8 11:12 PM
# Author : 拒绝内卷的小测试
import pytest
if __name__ == '__main__':
pytest.main(["--html=report/report.html", "--self-contained-html"])
3.5项目结构

二、API接口自动化测试脚本上传Github
1.新建仓库
首先,我们在Github上新建一个仓库,打开你的github,在仓库点击new新建


2.上传代码
接下来,将项目上传至Github仓库中
2.1初始化本地仓库
git init #使本地仓库为非空仓库

2.2提交本地内容
git add . #将当前目录中所有的内容添加
git commit -m "首次提交项目" #提交所有内容

2.3本地仓库连接远程仓库
使用本地仓库与远程仓库绑定关系,将代码传到Github仓库中
git remote add origin git@github.com:你的git名/你的仓库名.git
2.4本地仓库文件推送远程仓库
git push -u origin master

这时,我们再去Github对应仓库取刷新,即可看见本地项目已上传至Github仓库中。

三、Jenkins定时拉取最新代码构建任务并发送邮件
1.邮箱配置
在面板–系统管理–系统配置中找到Jenkins Location位置,url默认本机就好,邮箱填写自己的


接下来配置Extended E-mail Notification,这是插件,如果没安装需要去插件页面搜索安装后,重启就可使用了。填写你的邮箱相关信息,服务器和端口在邮箱的设置里可以查看到。接着继续添加账号密码,需要注意的是,密码填写的是授权码。开启smtp服务后,邮箱后台会有授权码。这里的邮箱账号必须与上一步的系统管理员邮箱保持一致,填写好后选择密码保存。默认邮件接收者按需填写。



2.构建项目
2.1新建任务
新建一个任务,填写名称后,构建一个自由风格的项目


2.2配置代码拉取
描述随便写,源码选择从Git上获取,url为你项目的链接,添加Git的账号密码作为凭证。这里设置好后,jenkins已经可以自动拉取Git上的最新代码了。

2.3配置定时触发
构建触发器,根据自己需要配置触发时间,比如每小时或者每天等等。

2.4配置执行脚本
构建中选择执行shell(Windows选择执行Windows批处理文件),添加以下代码,Windows命令之间需要使用&&连接。
python3 -m venv myvenv # 新建虚拟环境
source myvenv/bin/activate # 激活虚拟环境
pip3 install -r requirements.txt # 安装需要的第三方库
python3 main.py # 执行脚本

2.5配置邮件通知
构建后操作中选择“Editable Email Notification”,再点开“Advanced Settings…”,“Add Trigger”选择“Always”,不管执行结果如何都会发送报告,附件类型、附件路径根据实际情况填写。


3.构建
3.1立即构建
配置完成后,在项目中点击“立即构建”,jenkins会立即构建项目。按设置好的流程依次拉取项目,执行脚本,发送邮件。控制台输出中可以看见执行日志。接收邮箱中也会收到相应的测试报告及附件。



3.2定时构建
因为此项目,我们有设置定时触发器,5分钟触发一次,即使我们不去手动构建,项目也会每隔5分钟自己去构建一次。


至此,一套完整的自动化流程已搭建完毕。
总结
本文仅仅简单介绍了API接口自动化测试脚本的编写、git的使用,以及Jenkins的简单构建任务及邮箱发送的过程。自动化测试任务大体流程如此,更多的功能,更好的方法等待你去探索,改造。
随手点赞一次,运气增加一份。
本文详述了如何从API接口自动化测试脚本编写开始,通过Git上传到Github,然后利用Jenkins进行定时拉取、执行脚本和发送测试报告的全过程。涉及需求分析、测试用例编写、Jenkins邮箱配置、构建项目等关键步骤。
609

被折叠的 条评论
为什么被折叠?



