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

news2024/11/24 6:08:40

目录

 前言:

 一、接口测试框架选型

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

 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 == 200
    assert 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 shutil

import pytest


def 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.coloradmin.cn/o/579567.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python程序中断

Python 程序中断 Python 是一种高级编程语言,被广泛应用于数据科学和机器学习等领域。但是,有时候我们需要中断 Python 程序的执行,以便处理意外事件或者出现错误时进行调试。在这篇文章中,我们将探讨 Python 程序中断的各种方法…

Rocky9-Linux上安装KVM虚拟机

一、案例环境 使用一台物理机器,安装Rocky9-Linux的64位系统,test01是在宿主机kvm中安装的虚拟机 主机 操作系统 IP地址 主要软件 kvm Centos 7 192.168.100.46 KVM test01 Centos 7 192.168.100.32 虚拟机

梅须逊雪三分白,雪却输梅一段香——CSS动画与JavaScript动画

CSS动画并不是绝对比JavaScript动画性能更优越,开源动画库Velocity.js等就展现了强劲的性能。 一、两者的主要区别 先开门见山的说说两者之间的区别。 1)CSS动画: 基于CSS的动画一般由浏览器“主线程”之外的独立线程处理,在其…

SpringBoot2-核心技术(一)

SpringBoot2-核心技术(一) 了解SpringBoot配置文件的使用 文章目录 SpringBoot2-核心技术(一)了解SpringBoot配置文件的使用一、文件类型1. properties2. yaml 二、yaml的基本使用1. 基本语法2. 数据类型2.1 字面量 2.2 对象2.3 …

Ubuntu系统磁盘分区与挂载

0x00、一些查看信息的命令 sudo fdisk -l 该命令可以列出当前设备上的所有分区表信息。 df -hl 该命令可以查看文件系统磁盘空间的使用情况。 0x01、对磁盘分区 使用命令 sudo fdisk 设备文件名(/dev/sda) 此处设备路径可以通过上面的fdisk -l命令查看…

测试老鸟总结,性能测试三大核心指标详解,并发/TPS/响应时间...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 抛出问题&#xf…

恒容容器放气的瞬时流量的计算

有时候,你会遇到一个问题,该问题的描述如下: 你有一个已知体积的容器,设容器体积为V,里面装有一定压力(初始压力)的气体,如空气或氢气等,设初始压力为1MPa,容器出口连接着一个阀门开…

服务(第三十一篇)mysql-mmm高可用

MMM是一套支持双主故障切换和双主日常管理的脚本程序。 用来监控和管理 MySQL Master-Master (双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加…

Makefile基础教程(自动生成依赖关系)

文章目录 前言一、makefile不包含.h依赖的后果二、gcc -M 和 gcc -MM命令三、sed命令四、makefile中命令的执行机制四、生成依赖文件并单独放入文件夹中总结前言 在前面的文章中我们都只使用到了.c文件作为依赖但是在实际的工程中肯定是不可能只有.c文件的还存在.h文件,那么在…

CSAPP Lab5- MallocLab

实验目标 本实验需要用c语言实现一个动态的存储分配器,也就是你自己版本的malloc,free,realloc函数。 实验步骤 tar xvf malloclab-handout.tar解压文件 我们需要修改的唯一文件是mm.c,包含如下几个需要实现的函数 int mm_ini…

ChatGPT通用人工智能:初心与未来

至少从 20 世纪 50 年代起,人们就开始大肆宣传可能很快就会创造出一种能够与人类智能的全部范围和水平相匹配的机器。现在,我们已经成功地创造出了能够解决特定问题的机器,其准确度达到甚至超过了人类,但我们仍然无法获得通用智能…

基于STM32F103的HAL库手动配置FreeRTOS

基于STM32F103的HAL库手动配置FreeRTOS 源码下载 FreeRTOS源码下载包括示例工程与内核工程。 示例工程:获取与开发环境相关的架构文件 内核工程:移植FreeRTOS的内核文件 示例工程Gitee地址 内核工程GirHub地址 STM32工程创建 使用STM32CubeMX创建新工…

电动汽车变频器

目录 1、电动汽车与汽油动力车的区别 2、变频器 3、变频器内元件 3.1、汽车变频器的组成和功能 3.1.1、电容器 3.1.2、变频器控制单元 3.1.3、逆变桥驱动单元 3.1.4、逆变桥单元 3.2、汽车上变频器的组成和功能 3.2.1、DC/DC升压转换器。 3.2.2、DC/DC降压转换器。 …

Java语言----二叉树

目录 一、二叉树 1.1 二叉树概念 1.2 两种特殊的二叉树 1.3二叉树的性质 二 、二叉树的实现 2.1第一种 使用数组 2.2第二种 使用链表实现 2.2.1二叉树代码构建 2.2.2二叉树的基本操作 三、二叉树的三种遍历 3.1递归方法实现 前、中、后遍历 3.2非递归方法实现 前、中…

Spark入门介绍

目录 一、Spark框架概述 1、Spark简介 2、发展 二、Spark功能及特点 1、定义

Kubernetes部署+kubesphere管理平台安装

Kubernetes官网;kubesphere官网 不论是Kubernetes官网还是找的其它部署步骤,基本都是推荐搭建集群的方式,是为了实现高可用.....等等,这样一来至少需要两台或三台的服务器来搭建,这样对我们的成本也是非常大的&#xf…

HCIA-MSTP替代技术之链路捆绑(手工模式)

目录 1,网络的可靠性需求 2,链路聚合原理 链路聚合: 聚合组(Link Aggregation Group,LAG): 成员接口和成员链路: 活动接口和活动链路: 非活动接口和非活动链路: 聚合模式&…

应急响应-web

应急响应的流程分为6个阶段 PDCERF 准备 ,检测,抑制,根除,恢复,总结 准备: 准备阶段就是以预防为主,准备一些应急响应的预案,对应急响应的分工操作制定一些计划,进行应…

Redis的数据结构

一)SDS 在redis中,保存key的是字符串,value往往是字符串或者是字符串的集合,可见字符串是redis中最常用的一种数据结构: 但是在redis中并没有直接使用C语言的字符串,因为C语言的字符串存在很多问题 1)获取字符串的长度需要通过运算…

突破自动化测试瓶颈!WEB自动化测试鼠标与键盘操作最佳实践分享

目录 引言 鼠标操作方法 说明 实例化对象 方法 实例1 实例2 拖拽 注意 键盘操作 说明 Keys类 常用的键盘操作 案例 结语 引言 在现代软件测试中,WEB自动化测试已经成为了必不可少的一部分,然而,面对各种繁琐的测试场景&#xf…