API+Git+Jenkins实现接口自动化测试脚本构建及发送测试报告全过程

本文详述了如何从API接口自动化测试脚本编写开始,通过Git上传到Github,然后利用Jenkins进行定时拉取、执行脚本和发送测试报告的全过程。涉及需求分析、测试用例编写、Jenkins邮箱配置、构建项目等关键步骤。


前言

本文从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的简单构建任务及邮箱发送的过程。自动化测试任务大体流程如此,更多的功能,更好的方法等待你去探索,改造。

随手点赞一次,运气增加一份。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拒绝内卷的小测试

感谢老板的投喂

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值