陆续给不同项目做了Web接口自动化测试,在尝试不同方法的同时会有新的体会。最近用到了HttpRunner3,本文将记录使用HttpRunner3+Allure+Jenkins在项目中快速实现Web接口自动化测试的过程。

HttpRunner3

安装

安装HttpRunner3:pip install httprunner

脚手架

使用HttpRunner提供的脚手架工具,能够快速创建项目目录,输入命令:httprunner startproject xxx

比如我通过"httprunner startproject demo"创建了名为demo的项目,创建完成后目录结构如下图所示:

生成测试用例

创建完项目目录后,如何快速生成测试用例呢?

为方便我们写用例,HttpRunner提供了录制工具,能够将har文件转换成pytest类型或者yaml/json类型的用例。而har文件可以通过抓包软件获得,以Charles举例:右键选择想要转换成用例的http请求->Export Session->文件类型选择.har格式保存。

此时,我们就完成了har文件的提取工作,那么如何转换成用例呢?HttpRunner提供了命令:har2case xxx.har 用har文件生成对应的pytest类型的测试用例。还是以demo项目举例,进入项目根目录下,har2case demo/har/github.har将在har目录下生成github_test.py文件,该文件即为pytest格式的用例。

为了便于分类管理,将生成的github_test.py文件从har文件夹移至testcases文件夹下。此外,很多时候,我们需要对初步生成的pytest用例进行修改,由于本文篇幅有限,请参考官方文档查阅方法。

运行用例

HttpRunner提供hrun命令用于运行测试用例,官方文档解释hrun等于pytest。所以,我们可以输入命令pytest demo/testcases/github_test.py来运行pytest类型用例。运行完成后,会在logs文件夹下生成对应的log文件,里面记录了测试过程及结果,如下图所示。

当然,为了操作方便,建议编写runner.py用于运行测试用例,而不是敲命令行的方式。

Allure测试报告

安装allure环境

Step1:安装java环境,因为allure依赖。然后安装allure,下载地址https://github.com/allure-framework/allure2/releases,解压后将allure/bin目录添加至系统环境变量中。

Step2:安装allure-pytest插件:pip install allure-pytest

运行用例并生成Allure测试报告

继续上述例子,分别输入命令行:

pytest demo/testcases/github_test.py --alluredir=demo/reports/allure_results

allure generate --clean demo/reports/allure_results -o demo/reports/allure_reports

将在demo项目的reports目录下生成allure测试报告,如下图所示。

经过上述步骤,已经能在本地使用HttpRunner录制脚本、执行测试及生成测试报告了。如需进一步远程定时运行测试用例、生成测试报告及邮件通知,我们可以通过jenkins实现它。

配置Jenkins

添加插件

安装并启动Jenkins服务后,在Manage Jenkins->Manage Plugins添加以下插件:

  • Allure Jenkins Plugin : 用于生成Allure测试报告
  • Email Extension :用于发送邮件

修改系统配置

添加号插件后,需要修改Jenkins的系统配置:

  • 配置Allure:在Manage Jenkins->Global Tool Configuration中配置allure系统路径
  • 发送邮件:在Manage Jenkins->Configure System中配置邮件服务器

修改Job配置

完成上述操作后,接着需要在Jenkins Job中完成相应的配置。新建或者打开一个Job,修改它的配置项。

设置定时

编写批处理命令

配置生成allure

配置发送邮件

Job配置完成后,便可根据实际的项目节奏定时运行测试,生成Allure测试报告及邮件通知相干人员了。当然,后续也可通过jenkins pipeline进一步达到CI/CD的目的。

参考资料

使用HttpRunner3+Allure+Jenkins实现Web接口自动化测试的更多相关文章

  1. pytest+requests+Python3.7+yaml+Allure+Jenkins+docker实现接口自动化测试

    接口自动化测试框架(用例自动生成) 项目说明 本框架是一套基于pytest+requests+Python3.7+yaml+Allure+Jenkins+docker而设计的数据驱动接口自动化测试框架 ...

  2. 接口自动化 [授客]基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0

    基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0   by:授客 QQ:1033553122     博客:http://blog.sina.com.cn/ishou ...

  3. 基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0

    基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0 目录 1. 开发环境2. 主要功能逻辑介绍3. 框架功能简介 4. 数据库的创建 5. 框架模块详细介绍6. Tes ...

  4. 接口自动化 基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]

    基于python+Testlink+Jenkins实现的接口自动化测试框架[V2.0改进版]   by:授客 QQ:1033553122 由于篇幅问题,,暂且采用网盘分享的形式: 下载地址: [授客] ...

  5. jenkins+ant+jmeter接口自动化测试(持续构建)

    使用badboy录制脚本,到处到jmeter后进行接口自动化,后来想着 可不可以用自动化来跑脚本呢,不用jmeter的图形界面呢, 选择了ant来进行构建,最后想到了用Jenkins来进行持续构建接口 ...

  6. 基于Python + requests 的web接口自动化测试框架

    之前采用JMeter进行接口测试,每次给带新人进行培训比较麻烦,干脆用python实现,将代码和用例分离,易于维护. 项目背景 公司的软件采用B/S架构,进行数据存储.分析.管理 工具选择 pytho ...

  7. 接口自动化 基于python+Testlink+Jenkins实现的接口自动化测试框架

    链接:http://blog.sina.com.cn/s/blog_13cc013b50102w94u.html

  8. python WEB接口自动化测试之requests库详解

    由于web接口自动化测试需要用到python的第三方库--requests库,运用requests库可以模拟发送http请求,再结合unittest测试框架,就能完成web接口自动化测试. 所以笔者今 ...

  9. 用postman进行web端自动化测试

    概括说一下,web接口自动化测试就是模拟人的操作来进行功能自动化,主要用来跑通业务流程. 主要有两种请求方式:post和get,get请求一般用来查看网页信息:post请求一般用来更改请求参数,查看结 ...

随机推荐

  1. 适合普通大学生的 Java 后端开发学习路线

    大家好,我是帅地. 接下来的一段时间,帅地会总结各种技术栈的学习路线,例如 Java 开发,C++ 开发,python 开发,前端开发等等,假如你没有明确的目标,或许可以按照我说的学习路线来学习一波, ...

  2. markdown文档编写基础

    Markdown快速入门教程 ###########来源:https://zhuanlan.zhihu.com/p/84918488 ###########来源:https://github.com/ ...

  3. 自建简易FaaS平台

    近些年来,传统的 IaaS.PaaS 已经无法满足人们对资源调度的需求了.各大云厂商相继开始推出自家的 Serverless 服务.Serverless 顾名思义,它是"无服务器" ...

  4. FreeRTOS-04-内核控制函数+时间管理函数

    说明 本文仅作为学习FreeRTOS的记录文档,作为初学者肯定很多理解不对甚至错误的地方,望网友指正. FreeRTOS是一个RTOS(实时操作系统)系统,支持抢占式.合作式和时间片调度.适用于微处理 ...

  5. CF201C Fragile Bridges TJ

    本题解依旧发布于洛谷,如果您能点个赞的话--(逃 前言 题目链接 正解:动态规划 思路不是很好想,想出来了应该就没有多大问题了,但是需要处理的细节较多,再加上水水的样例,难度应该是偏难的.个人感觉应该 ...

  6. BUU八月份水题记录

    目录 [BJDCTF 2nd]fake google(SSTI) [BJDCTF2020]Easy MD5(md5注入) [ZJCTF 2019]NiZhuanSiWei(反序列化) [BJDCTF ...

  7. curl的基本使用

    基本使用 1. 初始化 初始化非常简单,只需要调用curl_init()函数即可,他会返回一个curl句柄,后边几乎其他关于curl的设置,关闭等函数都需要使用这个句柄 $curl = curl_in ...

  8. ReentrantLock 中的 4 个坑!

    JDK 1.5 之前 synchronized 的性能是比较低的,但在 JDK 1.5 中,官方推出一个重量级功能 Lock,一举改变了 Java 中锁的格局.JDK 1.5 之前当我们谈到锁时,只能 ...

  9. SpringBoot | 3.3 整合MyBatis-Plus

    目录 前言 1. 什么是MyBatis-Plus 1.1 BaseMapper接口 1.2 IService接口 2. 整合MyBatis-Plus以及CRUD功能 2.1 导入场景依赖 2.2 CR ...

  10. 8.算法竞赛中的常用JAVA API :Calendar日期类

    8.算法竞赛中的常用JAVA API :Calendar日期类 摘要 在蓝桥杯中有关于日期计算的问题,正好java中的Date类和Calendar类提供了对日期处理的一些方法.Date类大部分方法已经 ...