HttpRunner接口自动化框架的使用
简介:
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
HttpRunner是一个基于Python开发的测试框架,可以运行在Mac、Linux、Windows系统平台上,
【第一步】:安装
Python 版本:HttpRunner 支持 Python 3.4 及以上的所有版本,并使用 Travis-CI 进行了持续集成测试,测试覆盖的版本包括 2.7/3.4/3.5/3.6/3.7。
虽然 HttpRunner 暂时保留了对 Python 2.7 的兼容支持,但强烈建议使用 Python 3.4 及以上版本。
首先电脑上要保证先安装了Python3.4及以上版本并配置好环境变量
安装方式:使用pip安装
pip3 install httprunner
如果你需要使用最新的开发版本,那么可以采用项目的 GitHub 仓库地址进行安装(未试过该种方式):
pip3 install git+https://github.com/HttpRunner/HttpRunner.git@master
安装升级:
如果之前有安装过HttpRunner,现在需要升级到最新版本,可以使用-U参数
$ pip3 install -U HttpRunner
$ pip3 install -U git+https://github.com/HttpRunner/HttpRunner.git@master
安装校验:
在HttpRunner安装成功后,系统会新增5个命令:
httprunner: 核心命令ate: 曾经用过的命令(当时框架名称为 ApiTestEngine),功能与 httprunner 完全相同hrun: httprunner 的缩写,功能与 httprunner 完全相同locusts: 基于 Locust 实现性能测试har2case: 辅助工具,可将标准通用的 HAR 格式(HTTP Archive)转换为YAML/JSON格式的测试用例
httprunner、hrun、ate 三个命令完全等价,功能特性完全相同,个人推荐使用hrun命令
运行如下命令,若正常显示版本号,则说明 HttpRunner 安装成功。
hrun -V
har2case -V
【第二步】:简单使用
在python工作目录下创建一个项目模板
进入到Python工作目录-->鼠标右键选择git bash-->输入以下命令:
hrun --startproject 项目名称

命令执行完后会将整个项目结构创建好,使用pycharm打开,可以看到结构如下:

在testcases文件夹下新建一个.yml或.json文件,并按照格式写入接口的相关信息,

在Terminal中执行用例,进入到用例所在文件夹并执行 hrun xxx.yml/xxx.json,同时会对应的生成测试报告文件夹及测试报告

【HttpRunner数据驱动】
在HttpRunner中如果要采取数据驱动的方式来运行用例,需要创建一个文件(testsuite)对测试用例进行引用,并使用parameters关键字定义参数并指定数据源取值方式
在testsuites目录下新建一个测试场景文件testsuite.yml,注意文件中的层级关系,testcase和parameters是同一级的
(1)直接指定参数列表

该例子中对description进行参数化,在测试用例中直接使用$+变量名进行引用,切换到testsuites目录下去运行testsuite.yml。
(2)引用CSV文件
在TestApi下新建一个文件夹data,将csv文件放在data目录下

csv中准备好数据,直接引用即可(要注意文件的路径),然后再测试用例中也是同样用 $+参数 名调用。

PS:只要csv文件中包含中文字符,执行用例时就会报编码错误,还不知道如何解决
csv还有不同的格式么 不理解????
HttpRunner接口自动化框架的使用的更多相关文章
- 接口自动化框架 - httprunner
自己曾经写过一个接口自动化的框架,并做了一版本的优化,一直觉得做的还不错,且没依赖现有的框架. 最近因为一些工作的原因,开始又思考之前写的框架的一些缺点及如何优化,所以找到比较有名的httprunne ...
- python+request接口自动化框架
python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...
- 转载:python + requests实现的接口自动化框架详细教程
转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实现的接口自动化框架详细教程 前段时间由于公司测试方向的转型,由 ...
- 接口自动化框架(Pytest+request+Allure)
前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱. 接口自动化包含2个部分,功能性的接口自动化测试和并发接口自动化测试. 本次文章着重介绍第一种, ...
- python + requests实现的接口自动化框架详细教程
前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自 ...
- python3+request接口自动化框架
首次书写博客,记录下写的自动化接口框架,框架比较简单,哈哈哈,算是记录下历程把!~~~ 一.本次框架由python3.6 书写 1.准备代码环境,下载python3.6 下载地址:https:/ ...
- 接口自动化框架2-升级版(Pytest+request+Allure)
前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱. 第一版入口:接口自动化框架(Pytest+request+Allure) 本次版本做了一些升级 ...
- Jmeter+ant+Jenkins接口自动化框架搭建
摘自:https://testerhome.com/topics/13389 一.背景 上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接 ...
- python+requests接口自动化框架
为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...
随机推荐
- Spring-Cloud微服务踩坑
@feignclient和@requestmapping混用的时候出错 重写springmvc扫描controller时不带有@feignclient才实例化 @Configuration @Cond ...
- VSCode部署JAVA项目出现The type java.lang.Object cannot be resolved
如题,出现的原因是这样的:我将mac系统上的eclipse项目复制到了ubuntu环境下,通过vscode的远程功能连接ubuntu. 然后项目上就出现了各种报错,显示The type java.la ...
- Google Chrome 退出清除浏览数据
版本 79.0.3945.88(正式版本) (64 位) 设置-高级-隐私设置和安全性-网站设置-Cookie和网站数据-退出Chrome时清除Cookie及网站数据.
- HW - VCN 介绍
VCN 是个管理摄像机的平台 用来增删改查摄像机,获取摄像机视频流,获取录像 vcn会基于我们的接口做一次开发,作为相机的统一管理入口,获取相机的信息
- 最短路-B - 六度分离
B - 六度分离 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为“小世界现象(small world phenomenon)”的著名假说,大意是说,任何2个素不相识的人中间最多只隔着6 ...
- WPF Dispatcher.BeginInvoke子线程更新UI
在开发WPF应用时出现:”调用线程无法访问此对象,因为另一个线程拥有该对象.“ 是因为UI线程是WPF应用的主线程,若尝试子线程更新UI线程应使用Dispatcher.BeginInvoke()或者I ...
- 牛客CSP-S提高组赛前集训营5 赛后总结
A.无形的博弈 心理题. 答案为\(2^n\),可感性理解结论的正确性. #include<bits/stdc++.h> #define LL long long const LL Mod ...
- centos 7 源码安装openresty
Openresty 官网 http://openresty.org Openresty源码下载页面 http://openresty.org/en/download.html Openresty 简易 ...
- [ZJOI2009] 狼与羊的故事 - 最小割
给定一个\(N \times M\)方格矩阵,每个格子可在\(0,1,2\)中取值.要求在方格的边上进行划分,使得任意联通块内不同时包含\(1\)和\(2\)的格子. ________________ ...
- Git学习笔记-上传一个新的项目到GitHub上
前提: 已有Github账号,已在Github上建立了仓库,已在Github上配置了SSH,已上传过一些项目到Github上 目标: 目前有一个新的项目,需要上传到github上 我的做法记录: 1. ...