接口自动化一键集成,Jenkins持续集成Allure报告!

news/2025/1/15 22:06:46/

目录

 前言:

 一、接口测试框架选型

 二、接口自动化框架封装的设计

 2.1 创建测试用例

2.2 执行测试用例

2.3 生成测试报告

  三、 实现Jenkins持续集成

3.1 安装Jenkins

3.2 配置Jenkins

3.3 创建Jenkins任务

四、总结


 前言:

接口测试作为软件测试中的一部分,对于保证软件质量以及减少系统风险起着至关重要的作用。然而,在开发过程中,接口测试工作通常被认为是一项繁琐而耗时的任务,需要不断地手动执行测试用例并进行结果验证。因此,自动化接口测试逐渐成为了软件开发的一项热门技术。

在自动化测试中,接口自动化框架是实现自动化测试的重要工具。封装好的接口自动化框架可以高效地运行测试案例,并为开发者和测试人员提供丰富的测试报告和测试结果分析。本文将介绍一项接口自动化框架封装项目实战,重点介绍如何使用Jenkins进行持续集成,并通过Allure报告进行测试结果展示。

 一、接口测试框架选型

在开发接口自动化框架之前,还需要选择一个适合的框架。目前市面上的接口自动化测试框架有很多种,我这里选择了Python语言下的requests库和pytest测试框架。

requests库可以方便地向接口发送请求,并解析返回结果,对于接口测试来说非常实用;pytest框架早已成为Python生态系统中的一个主流测试框架,其简单易用、扩展性强且可维护性高等优点,也成为我们选择的理由。

 二、接口自动化框架封装的设计

为了实现接口测试的自动化,我们需要完成如下三个主要的工作:

1. 创建测试用例
2. 执行测试用例
3. 生成测试报告

 2.1 创建测试用例

在接口测试中,测试用例是重中之重。在我们的项目实现中,我们使用了pytest框架和python语言完成了测试用例的编写。

import pytest
import requests# 接口地址
url = 'http://api.apiopen.top/recommendPoetry'def test_get_poetry():# 发送GET请求r = requests.get(url)# 返回结果断言assert r.status_code == 200assert r.json()['code'] == 200

2.2 执行测试用例

接下来,我们需要编写一个入口文件,以便通过命令行执行测试用例。在我们的项目实现中,我们使用了pytest的main函数来运行测试用例。

if __name__ == '__main__':# 执行测试用例pytest.main(['-s', '-v'])

2.3 生成测试报告

测试报告是我们展示测试结果的关键,因此需要一个支持生成测试报告的工具。在我们的项目实现中,我们使用了Allure生成测试报告。

Allure是一个针对测试结果进行转换、存储和报表的开源测试框架。它支持Python、Java、Ruby、Go和Scala等主流编程语言,并且提供了多种生成测试报告的方式。

在本项目中,我们通过使用pytest和pytest-allure插件集成Allure来生成测试报告。同时,我们还需要编写一个generate_report.py脚本,以便自动化运行测试用例并生成测试报告。

#!/usr/bin/env python
# -*- coding: utf-8 -*-import os
import shutilimport pytestdef run():"""执行测试用例,并生成Allure测试报告"""# 删除历史Allure测试报告if os.path.exists('./allure-report'):shutil.rmtree('./allure-report')# 执行测试用例pytest.main(['-s', '-q', '--alluredir', './allure-results'])# 生成Allure测试报告os.system('allure generate ./allure-results -o ./allure-report --clean')

  三、 实现Jenkins持续集成

Jenkins是一款开源的自动化工具,能够实现自动化构建、自动化部署和自动化测试等多个功能。在本项目中,我们选择使用Jenkins来实现接口测试的持续集成。

3.1 安装Jenkins

首先,我们需要在本地安装Jenkins。具体安装步骤可以参考官网指引

[https://jenkins.io/doc/book/installing/](https://jenkins.io/doc/book/installing/)。

3.2 配置Jenkins

安装完成后,在Jenkins面板中进行全局配置。

添加全局变量ALLURE_HOME:

![全局变量设置](https://cdn.luogu.com.cn/upload/image_hosting/8aoz9bzt.png)

安装Allure插件:

![插件安装](https://cdn.luogu.com.cn/upload/image_hosting/szqb0br1.png)

3.3 创建Jenkins任务

创建Jenkins任务,为接口自动化测试框架创建一个新的持续集成任务。

![创建任务](https://cdn.luogu.com.cn/upload/image_hosting/6qc6bh54.png)

添加构建步骤为Execute shell:

![添加构建步骤](https://cdn.luogu.com.cn/upload/image_hosting/chr07kci.png)

执行命令:

cd /app && source venv/bin/activate && python generate_report.py

然后保存并立即构建该构建任务,如果构建成功没有报错,则可以看到Allure测试报告界面。

四、总结

通过本文的案例,我们学习了如何利用Python实现接口自动化测试并将其集成到Jenkins中进行持续集成。接口自动化测试和持续集成是现代软件测试的新趋势和必备技能。掌握这些技能,不仅可以提升测试效率、加快开发周期,还可以降低软件风险,为企业创造更大的价值。

 作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试前进之路的必须品,如果你用得到的话可以直接拿走,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

获取方式:留言【自动化测试】即可
【自动化测试交流】:574737577(备注ccc)http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=yTky89vp61ak2ySZMOHqFKs3cy63KNdR&authKey=CdUemWSkJDENrUBUAj1JFqz5RQ4ov6MKoYzfjSJmLZ9Ot656Xl857XpyxrFO6OI5&noverify=0&group_code=574737577


http://www.ppmy.cn/news/98490.html

相关文章

基于Open3D的点云处理4-数据结构Kdtree和Octree

Kdtree Kdtree是一种划分k维数据空间的数据结构,本质也是一颗二叉树,只不过每个节点的数据都是k维,当k1时,就是普通二叉树。 建立Kdtree实际上是一个不断划分的过程,首先选择最sparse的维度(一般通过计算…

分布式网络通信框架(一)——集群和分布式

单机聊天服务器 缺点: 受限于硬件资源,服务器所能承受的用户并发量不够大; 任意模块修改,都会导致整个项目代码重新编译、部署; 系统中,有些模块是CPU密集型,有些是IO密集型,造成…

vscode配置flutter开发环境,不需要安装第三方安卓模拟器

1.获取Flutter SDK 点击下方的安装包,获取 stable 发行通道的 Flutter SDK 最新版本:Flutter SDK 将压缩包解压,然后把其中的 flutter 目录整个放在你想放置 Flutter SDK 的路径中**(注意不要出现中文目录)** 配置Wi…

【论文阅读】Densenet:Densely Connected Convolutional Networks 密集连接的卷积网络

文章目录 前言一、摘要二、网络架构2.1. densenet2.2. dense block2.3 与resnet对比2.4 pytorch代码 三.实验结果四.结论 前言 从今天开始总结一下之前看的一些深度学习相关的论文。 今天的这篇还是比较经典的论文:密集连接网络。在很多国内的硕士毕业论文里都出现…

ubuntu下搭建opencv环境

一、完全卸载opencv 1. 先到opencv编译安装的目录下 sudo make uninstall cd .. sudo rm -r build 2.上面最后一行命令有的文件夹不存在会有提示,但是不影响,只要把已安装的opencv的include和lib删掉就行,也可以手动删除,总之删…

50 Projects 50 Days - Scroll Animation 学习记录

项目地址 Scroll Animation 展示效果 Scroll Animation 实现思路 HTML结构比较简单,就是10个盒子元素。当鼠标滚动时,盒子分别从左右移动过来。 思路上最开始想到的是给每一个盒子标记一个序号,滚动屏幕后,计算已经划动屏幕的…

配置nginx常用命令

在修改 Nginx 配置文件之后,您需要重新加载或重启 Nginx 以使配置更改生效。具体的命令和方式可能因操作系统和版本而有所不同。 以下是常见的重新加载或重启 Nginx 的方法: 1. 重新加载配置: - 使用 service 命令(适用于 Ub…

leetcode 394. 字符串解码

感觉糊里糊涂的AC了,感觉还要二刷。。。 题目链接leetcode 394 1.题目 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你…