陆续给不同项目做了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. video标签的视频全屏

    按钮: <div class="fullScreen" @click="fullScreen"><i class="el-icon- ...

  2. Zabbix中Agent自动注册

    目录 Active agent自动注册 以下情况,自动注册会自动运行: 配置 服务端配置 客户端配置 Active agent自动注册 zabbix Active agent可以实现自动注册,进而服务 ...

  3. 自学linux——9.Linux的权限概述

    Linux的权限概述 一.      权限概述 1.权限介绍 在多用户(可以不同时)计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权力,像是文件夹.特定系统指令的使用或存储量的限制 ...

  4. 单片机学习(五)LCD1602和矩阵键盘的使用

    目录 LCD1602的使用 矩阵键盘的使用 矩阵键盘相关电路图 按键检测扫描 制作密码输入器 LCD1602的使用 首先LCD1602是外接在开发板上的液晶屏外设,如图所示: 我们主要使用它来代替动态 ...

  5. docker容器网络bridge

    我们知道docker利用linux内核特性namespace实现了网络的隔离,让每个容器都处于自己的小世界里面,当这个小世界需要与外界(宿主机或其他容器)通信的时候docker的网络就发挥作用了,这篇 ...

  6. setsockopt中参数之SO_REUSEADDR的意义

    1.setsockopt中参数之SO_REUSEADDR的意义 1.一般来说,一个端口释放后会等待两分钟之后才能再被使用,SO_REUSEADDR是让端口释放后立即就可以被再次使用. SO_REUSE ...

  7. kubernetes/k8s CNI分析-容器网络接口分析

    关联博客:kubernetes/k8s CSI分析-容器存储接口分析 kubernetes/k8s CRI分析-容器运行时接口分析 概述 kubernetes的设计初衷是支持可插拔架构,从而利于扩展k ...

  8. SpringBoot 整合 SpringSecurity 梳理

    文档 Spring Security Reference SpringBoot+SpringSecurity+jwt整合及初体验 JSON Web Token 入门教程 - 阮一峰 JWT 官网 Sp ...

  9. noip15

    童话故事专场 T1 首先,dead line 是一条直线,而不是线段.考试的时候一直以为是线段,那么横竖共有n+m条,考虑斜着的,斜着的交点为有穷的,则需要满足斜率不同,那么只需要统计一边的,再乘2就 ...

  10. docker commit (从容器创建一个新的镜像)

    从容器创建一个新的镜像 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] -a :提交的镜像作者: -c :使用Dockerfile指令来创建镜 ...