Python接口自动化测试框架(工具篇)-- 接口测试工具HTTPRUNNER

简介: 本文介绍了Python接口自动化测试框架HTTPRunner,包括其安装、使用方法,并通过实际操作演示了如何利用HTTPRunner进行接口测试,同时还探讨了HTTPRunner作为接口自动化测试解决方案的可能性和实用性。

一、前言

又又又到了讲httprunner框架的时候,作为测试界的后起之秀,从其开源默默无闻到家喻户晓,从线上教育机构拿来做噱头到作者在工作中实战应用,就单单它不同的版本支持不同的测试框架,它就值得再一次被解说。尽管这个系列作者已经写过10来篇,其中用法介绍相差不大,但是在整个接口自动化测试框架中没有篇幅,或者叫推荐,那么它又是测试界的新宠儿,不仅是在接口测试方面;还能做接口性能测试,它在测试界应该占有一席之地。

二、HttpRunner介绍

附上github地址,这是开源的免费项目,已经发展到v3.x版本了,unittest进阶pytest框架;可以算是非常优化了。

另附httprunner3.x官方文档地址,本章内容所有的技术点都源自于此;或许一些疑问也应该由此提出;它能做为接口自动化测试的解决方案吗?

  • 无论是浏览github还是阅读官方文档,它的描述都不是工具而是框架;没错,它集成了requests、pytest、locust、allure等等诸多工具或者框架、插件,是集大成者。

2.1、如何安装

支持python3.6及以上版本,pip install httprunner,如此默认是安装最新版本;本篇就以最新版本做演示。

如果想去低版本,可以指定安装版本:pip install httprunner==2.4.3;更多安装办法请参考官方文档。

  • 验证安装版本是否成功,cmd–>httprunner -V
C:\Users\xxxxx>httprunner -V
3.1.6

2.2、如何使用

记住一点,咱们在选择用什么样的工具做接口测试的时候,往往优先考虑它的使用规则,是简单还是复杂,是容易上手还是需要更高学习成本?很幸运,它是简单易学的,这要归功于它的录制功能(事实证明:如果一个优秀的工具少了录制功能,咱们也会对它少了些兴趣),通过抓包工具fiddler/charles导出har数据文件,再通过har2case(-2y/-2j)转换成yaml/json格式的测试用例,最后hrun执行脚本;这样就可以完成简单的线性脚本(场景化接口测试)。

  • 录制功能,选择自己熟练的工具,作者优先charles

在这里插入图片描述

  • 设置手机或浏览器代理,教程略,可自行百度搜索
  • 开始抓包(录制),导出har文件,存放于指定位置
  • cmd命令进入har文件位置,har2case xxx.har会在当前路径下默认生成xxx_test.py文件
C:\Users\xxxxx>testcase\dir
xxxxxx xxxx  xxx  xxx.har
C:\Users\xxxxx>testcase\har2case xxx.har
C:\Users\xxxxx>testcase\dir
xxxxxx xxxx  xxx  xxx.har
xxxxxx xxxx  xxx  xxx_test.py

# 默认py,har2case -2y 参数可以生成yaml格式
C:\Users\xxxxx>testcase\har2case -2y xxx.har
C:\Users\xxxxx>testcase\dir
xxxxxx xxxx  xxx  xxx.har
xxxxxx xxxx  xxx  xxx_test.py
xxxxxx xxxx  xxx  xxx.yml

# har2case -2j 参数可以生成json格式
C:\Users\xxxxx>testcase\har2case -2j xxx.har
C:\Users\xxxxx>testcase\dir
xxxxxx xxxx  xxx  xxx.har
xxxxxx xxxx  xxx  xxx_test.py
xxxxxx xxxx  xxx  xxx.yml
xxxxxx xxxx  xxx  xxx.json
  • 执行用例文件:hrun xxx.json,会在当前目录生成reports报告目录/xxx.html
C:\Users\xxxxx>testcase\hrun xxx.json --html=reports/report.html
C:\Users\xxxxx>testcase\dir
xxxxxx xxxx  <DIR>  reports
xxxxxx xxxx  xxx  xxx.har
xxxxxx xxxx  xxx  xxx_test.py
xxxxxx xxxx  xxx  xxx.yml
xxxxxx xxxx  xxx  xxx.json
  • 查看报告,进入reports目录双击report.html报告

在这里插入图片描述

  • 这个报告相对较丑,再看看美丽的一面,不过需要多做两件事情:pip安装allure-pytest插件和安装allure
C:\Users\xxxxx>testcase\ pip install allure-pytest
C:\Users\xxxxx>testcase\ hrun xxx.json  --alluredir=reports/allure-results
C:\Users\xxxxx>testcase\ allure serve reports/allure-results

在这里插入图片描述

  • allure serve会生成报告,并且自动打开浏览器:

在这里插入图片描述

三、小结

在使用过程中,熟练度肯定不如之前写的httprunner2.x版本,然而hrun/har2case -h所支持的参数列表多少也发生了变化,故而导致使用感觉陌生了点,既然它提供了帮助文档,咱们就应该能用最少的时间来适应它。

关于测试用例的格式,json或者yml,首先推荐yml,因为它能在文件中写注释,就单单这点就够了,虽然格式美化后的json会比yml可读性更高写,但是耐不住yml的运用会比json广。

关于api、测试用例、测试套件的使用,在当前最新版本可能已经不存在这个概念了,所以需要稍微多的时间从个人感觉HttpRunner2.x版本转变过来;个人感觉HttpRunner2.x版本已经可以满足日常测试需求了。

四、扩展

像jmeter都有模版快速创建测试计划,httprunner也不例外有快速创建工程结构

  • httprunner -h , 查看帮助文档,httprunner框架支持hrun、har2case、startproject、make操作;
  • 其中startproject参数就能满足快速创建工程的需求

在这里插入图片描述

在这里插入图片描述

  • 而make可以将json/yml格式的用例数据转成py测试用例;和hrun直接运行xxx.har一样

在这里插入图片描述

4.1、回到刚开始的问题

HttpRunner能作为接口自动化测试的解决方案吗?

  • 答案是肯定的,作者当前应用就是通过录制,按模块或者业务功能操作app,分不同场景和业务进行组织测试用例,最后与jenkins集成,通过定时构建触发执行测试,按条件决定是否发送邮件、钉钉、企业微信消息通知。

在这里插入图片描述

相关文章
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
809 0
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
844 0
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
527 0
|
测试技术 Python
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
本文介绍了Python中的循环语句,包括while和for循环的使用,range()函数的运用,以及continue、break和pass关键字的说明,同时提出了关于while循环是否能与成员运算符结合使用的思考。
375 1
Python接口自动化测试框架(基础篇)-- 流程控制之循环语句for&while
|
测试技术 索引 Python
Python接口自动化测试框架(练习篇)-- 数据类型及控制流程(一)
本文提供了Python接口自动化测试中的编程练习,包括计算器、猜数字、猜拳和九九乘法表等经典问题,涵盖了数据类型、运算、循环、条件控制等基础知识的综合应用。
479 1
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
1483 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
IDE 测试技术 开发工具
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作
本文介绍了Python中的文件操作方法,包括使用open()打开文件、close()关闭文件、read()读取内容、readline()读取单行、readlines()读取多行、write()写入内容以及writelines()写入多行的方法。同时,探讨了文件操作模式和编码问题,并扩展了上下文管理器with...as的使用,以及对图片和音频文件操作的思考和练习。
325 1
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作
|
测试技术 索引 Python
Python接口自动化测试框架(基础篇)-- 函数与内置函数
本文详细介绍了Python中的函数概念,包括自定义函数、参数传递、局部与全局变量,以及内置函数的使用,还扩展了匿名函数、return和yield、exec()、vars()、iter()、map()、zip()、reversed()和sorted()等高级函数和概念。
469 1
Python接口自动化测试框架(基础篇)-- 函数与内置函数
|
测试技术 Python
Python接口自动化测试框架(基础篇)-- 流程控制之if条件控制
Python中的流程控制语句if条件控制,涵盖了比较运算符、成员运算符、身份运算符、逻辑运算符的使用,if语句的嵌套,以及如何使用input和print函数进行交互式编程练习。
367 1
Python接口自动化测试框架(基础篇)-- 流程控制之if条件控制

推荐镜像

更多