点击上方“AirPython”,选择“加为星标”

第一时间关注 Python 原创干货!

1. 前言

原始测试金子塔包含 3 层,分别是:UI 自动化测试、接口服务测试、单元测试

其中,

单元测试是对软件的最小可测试单元进行检查和验证,也是产生效率最大的一项测试

接口服务测试分为模块接口测试和协议接口测试

UI 测试主要是为了取代人力操作,通过 UI 自动化去模拟操作,降低回归测试的成本

考虑到投入产出率,大部分企业都会将测试重点放在接口自动化测试这一项上

接口自动化主流方案包含:Python + Pytest/Unittest、Java + TestNG、Postman、HttpRunner、Postman、Jmeter、RobotFramework 等

本篇文章将和大家一起聊聊 HttpRunner 做接口自动化的流程

2.介绍及安装

HttpRunner 是一款完全由 Python 语言编写的测试框架,并且简单、优雅、功能强大,同时支持 HTTP 和 HTTPS

HttpRunner 主要包含下列特征:

  • 继承 Requests 库的全部特性,轻松实现 HTTP(S) 的各种测试需求

  • 以 YAML 和 JSON 定义测试用例,通过 pytest 去运行

  • 基于 HAR 文件,实现接口的录制及用例的生成功能

  • 支持 variables、extract、validate、hook 等关键字,可以创建复杂的测试场景

  • 借助辅助插件 debugtalk.py,在测试脚本中轻松实现复杂的动态计算逻辑

  • 集成 jmespath,方便提取变量、验证 JSON 响应

  • 集成 pytest,支持大量的插件

  • 集成 allure 生成强大的测试报告

  • 集成 locust,非常方便做性能测试

  • 执行方式采用 CLI 调用形式,可以和 Jenkins 等持续集成工具完美结合

使用 pip 安装 HttpRunner 稳定版本

# 安装 HttpRunner 稳定版本pip3 install httprunner

需要指出的是,HttpRunner V3 版本对比 V2 版本进行了大量优化,特别是测试用例的表现形式,强烈建议安装 V3 版本

3.常见命令

安装完 HttpRunner 之后,就可以使用下面几个命令了

1、hrun

HttpRunner 最主要的命令,主要作用是运行 Py/YAML/JSON 格式的测试用例

2、hmake

将 YAML/JSON 格式的测试用例转换为 Python 文件

ps:HttpRunner V3 以 Python 文件保存测试用例,V2 之前是以 JSON/YAML 格式保存测试用例

3、har2case

har2case 作用是将 HAR 格式的请求文件转为 YAML/JSON/Py 格式的测试用例

ps:一般网络请求都可以直接以 AHR 格式保存到本地

4、locusts

HttpRunner 集成了 locusts 命令,可以利用它直接进行性能测试

5、其他命令

另外,通过 httprunner -h 命令可以查看帮助;使用 httprunner -V 命令可以查看 HttpRunner 的版本信息

4.小试牛刀

先通过一个简单的接口聊聊 HttpRunner 的使用步骤

目标接口 - GET:

https://postman-echo.com/get?foo1=bar1

第一步:抓包,保存为 HAR 文件

打开 Charles 或 Fiddler,配置 Chrome 浏览器的代理, 使 Charles 可以对浏览器进行抓包

使用 Chrome 访问这个接口地址,模拟一次请求,然后在 Charles 中找到对应的请求,右键保存为 HAR 文件

第二步:转为测试用例

使用 har2case 命令将 HAR 文件转换为测试用例,V3 版本默认生成测试用例格式为 Py 文件

查看测试用例后发现,HttpRunner 自动生成的测试用例结构十分清晰,二次修改也非常方便

第三步,运行测试用例

使用 hrun 命令运行测试用例,另外,加上 --html 参数,可以在本地生成测试报告

# 生成测试报告hrun demo_test.py --html=report.html

打开测试报告,可以查看测试用例的执行结果及日志

5.脚手架

HttpRunner 同样提供了脚手架,方便我们快速创建标准化项目

# 使用脚手架创建一个项目httprunner startproject demo

生成项目的目录结果如下:

其中,

1、debugtalk.py

一般用于自定义 Python 函数,方便测试用例调用

比如:某个请求参数需要通过一段加密逻辑生成,这时可以自定义一个函数写在 debugtalk.py 文件中

2、har

从抓包工具、Postman、浏览器保存的网络请求

3、reports

生成测试报告的目录

需要指出的是,除了使用自带的 pytest-html 插件生成测试报告,HttpRunner 还可以通过 allure 生成功能更加强大的测试报告

4、testcases

用于放置测试用例

使用 hrun 命令可以直接运行脚手架项目

# 运行脚手架项目# hrun 项目名称hrun demo

6.最后

受限于篇幅,上面仅仅介绍了 HttpRunner 最基本的使用方法

HttpRunner 更加复杂的功能,我已经在官方文档的基础上,整理出了一个详细的操作手册,关注公众号后回复「 HR 」即可获取

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

留言送书本周赠书:《深入浅出Python机器学习PS:中奖名单将于下周一在交流群公布本书内容涵盖了有监督学习、无监督学习、模型优化、自然语言处理等机器学习领域所必须掌握的知识,从内容结构上非常注重知识的实用性和可操作性。全书采用由浅入深、循序渐进的讲授方式,完全遵循和尊重初学者对机器学习知识的认知规律。推荐阅读带你用 Python 实现自动化群控(入门篇)这些自动化场景,批处理完全可以取代 Python抖音超火的九宫格视频是如何生成的,Python 告诉你答案

AirPython 公众号的交流群已经建立,群里可以领取 Python 相关学习资料,大家可以一起学习交流,效率更高,如果是想发推文、广告、砍价小程序的敬请绕道!一定记得备注「 交流群 」,不然不会通过好友

html请求接口_Python 如何使用 HttpRunner 做接口自动化测试相关推荐

  1. python runner功能_Python 如何使用 HttpRunner 做接口自动化测试

    点击上方"软测小生",选择"加为星标" 第一时间关注软件测试原创干货! 1. 前言 原始测试金子塔包含 3 层,分别是:UI 自动化测试.接口服务测试.单元测试 ...

  2. 转为yaml python_python 如何使用HttpRunner做接口自动化测试

    作者:星安果 来源:AirPython 1. 前言 原始测试金子塔包含 3 层,分别是:UI 自动化测试.接口服务测试.单元测试 其中, 单元测试是对软件的最小可测试单元进行检查和验证,也是产生效率最 ...

  3. python创建api接口_Python调用飞书API接口

    知乎文章若有排版问题请见谅,原文放在个人博客中[欢迎互踩!] 写在最前 飞书作为一款高效远程办公软件,在疫情期间凭借着人性化的UI交互以及稳定的远程联络能力深得各大企业的偏好.但在创建团队之初,难免遇 ...

  4. python 知乎接口_Python日记——用Django做一个简易的知乎日报API

    为什么我要选择django做生成api的框架 因为其内置的orm简单易用 生成restful的api要配合rest_framework使用 文档地址:https://darkcooking.gitbo ...

  5. python股票接口_Python 从 sina 股票数据接口读取数据,并保存到 MySQL 数据库

    说明 从 sina 的数据接口获取数据,之后,保存到 MySql 数据库 文件:getDataFromSina.py ''' Created on 2018年2月11日 @author: Livon ...

  6. python测试rpc接口_python使用grpc调用rpc接口

    #Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! importgrpcimportcoupon_pb2 as c ...

  7. 一、为什么要做接口自动化,怎样做

    目录 为什么要做接口自动化,怎样做 一.为什么要做接口自动化 二.了解一波接口 2.1 什么是接口 2.2 常用接口 2.3 http登录接口文档范例 2.4 获取接口关键信息 三.什么项目适合做接口 ...

  8. python写后台接口请求出错_python登录接口测试问题记录与解决

    最近做一个登录接口测试中,发现了以下的一些场景,本次将所遇到的问题以及解决过程做下记录: 1.抓包发现登录操作时,先后请求三个接口,并且每个接口有关联 2.每次请求都需要保留cookie信息,下个接口 ...

  9. python做接口自动化测试仪器经销商_Python接口自动化测试的实现

    接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,工具的使用相对来说都比较简单,重点是要搞清楚项目接口的协议是什么,然后有针对性的进行选择,甚至当 ...

  10. 【Node基础入门】----node中间层做接口转发,实现跨域请求

    前言:     起因,接手了一个四年前的老项目(2018年的),项目是前后端分离,并且是由前端用node解决的跨域问题.一个node小白,为了更好的了解项目的搭建以及线上部署,无奈踏上node的学习之 ...

最新文章

  1. linux vim配置注释,vim自动添加注释
  2. rails 常用方法
  3. 桥接路由器总是掉线_光猫集成了路由功能,路由器的路由功能会多余吗?
  4. Silverlight3 Tools Download link
  5. Redis源码剖析(八)链表
  6. 对几种二叉树的简单理解
  7. python字典长度可变吗_Python字典dict实现原理
  8. 句句真研—每日长难句打卡Day2
  9. 单例模式(七种实现方法)
  10. CSRF - 跨站请求伪造
  11. qt 设置按钮大小_QT使用教程(四)之初体验
  12. 彻底删除linux mbr,如何删除mbr分区表(超详细介绍Linux管理分区技巧)
  13. html设置尖角,CSS为div添加尖角样式
  14. 学习在html网页中打开展示pdf文件
  15. 执节歌者 · 箫谱1
  16. 矩阵的求逆:inv( )
  17. 有位置,来,搬个小板凳,喝酒听故事!
  18. 更改Ubuntu软件镜像为清华镜像
  19. 音调识别 php,PHP 汉字转拼音工具
  20. 为什么要写单元测试?如何写单元测试?

热门文章

  1. [2018.10.10 T1] 餐馆
  2. vue3初探-工程化项目架构-笔记
  3. 利用wordpress搭建自己的网站(百度云虚拟主机)
  4. promise入门的准备工作-(尚硅谷教程笔记)
  5. python查找客户总金额_如何使用python中的spark查找每个月的总金额
  6. linux single 禁用显卡,告诉你Ubuntu下禁用独显的方法及命令
  7. android studio 工程rebuild没反应,Andriod Studio Clear Project或Rebuild Project出错
  8. Introduction to Computer Networking学习笔记(二十四):拥塞控制 TCP Reno
  9. 测试mysql主从_MySQL主从介绍、配置主从、测试主从同步
  10. iOS:SideTable