httprunner的安装和基本使用

httprunner的安装和使用

前言

在公司实施接口自动化的过程中,接触到了一个不同于python+requests+unittest的接口自动化框架,相比后者,前者对于零基础员工易上手,但是对比后者,自主性较差,后续几篇博客,我会详细记录自己的一些心得。

下载安装

httprunner是python的第三方库,是国内大牛完成编写开发的,所以直接使用pip install httprunner 即可完成安装;需要知道的是,可以通过添加版本号完成指定版本安装

pip install httprunner==2.5.7

不确定自己是否已经完成安装的,可以通过两个方式去确认,首先通过dos命令操作输入pip list查看

pip list

在这里插入图片描述
也可以通过 hrun -V 查看httprunner的版本号

hrun -V

在这里插入图片描述
如两个图所示,都为httprunner已经安装完毕,个人建议使用httprunner2.5.7的版本,是httprunner较为稳定的版本。

框架介绍

httprunner框架是通过特定的命令,新建一个项目,然后这个项目包即为httprunner的框架,具体命令,会在下文介绍,现在先讲解一下httprunner的框架组成;
httprunner框架的核心由api,testcases,testsuites三个目录加上debugtalk.py文件组成,api文件夹顾名思义是存放单个接口的api的地址,testcases文件夹是存放拼接各个api文件形成的测试用例的地址,testsuites是拼接各个case文件形成测试套件的地址;
在使用过程中,我们一般根据功能测试场景,编写功能测试用例,然后通过抓取该条用例执行过程的中api接口,完成api接口的yml文件编写(httprunner所支持的一种文件编写格式,还可以使用json格式编写),在然后根据功能测试用例中接口的调用顺序编写testcases的顺序,原则上是一个testcase文件表示一个功能测试用例;一个项目模块一个suites文件;

框架的简单使用

创建项目

切换到希望项目存在的路径目录下,使用hrun --startproject 项目名称 完成项目的创建,cd /d 目标路径,dir查看路径目录文件

hrun --startproject stu_demo_hrun

在这里插入图片描述

api文件的编写

抓包工具抓包转化为yml文件

<1>使用charles和fiddler导出har文件,转化为yml文件
右键需要导出的接口,选择Export session…;
在这里插入图片描述
然后出现下面的弹框,选择文件存储的位置后,选择文件类型为har格式
在这里插入图片描述
然后打开dos命令操作行,执行命令:har2case 文件名 -2y

har2case UntitIed.har -2y

在这里插入图片描述
转换成功的yml文件还不能直接使用,因为转换的是case,要修改为api;首先使用notepad++打开生成的yml文件,然后去掉下图红框内的内容,保留绿框内容,并且全选缩进,使name,request,validata三个字段顶行,其他字段保持缩进距离,如图二所示
在这里插入图片描述
更改完成以后,应该如下图所示,三个红框内容顶行,其他内容保持缩进距离
在这里插入图片描述
到这一步,api文件的编写就完成了

testcase文件的编写

在这里插入图片描述
如上图,testcase的文件编写,也是yml文件,但是不同于api文件,它手动编写即可,config为测试用例的通用配置,可以理解为全局配置,teststeps则为测试步骤,根据该路径下的api排列顺序决定执行顺序,我文件中所写的step1只是自定义的标识,方便测试报告的阅读而已

testsuite的编写

在这里插入图片描述
如图上文字描述,testsuite文件也是一个集成文件,用于集成各个case文件,执行顺序也是按照testcas的排列顺序执行,理论上也是支持case之间进行参数传递和关联,但是根据我的项目经验,还是建议将关联关系放在case中去关联,保持case的独立性

yml 文件的各个字段解析

api文件

在这里插入图片描述
以上图为例

字段解析使用
name接口的名称执行单个接口时,测试报告上的用例名称
base_url接口的host地址-
variables变量声明当api需要定义一些变量/参数时,需要在该字段下已规定的格式进行定义
Status:0Status为接口使用的变量的名称,冒号后为变量的值Api使用变量,需要如此定义
requestapi接口的请求体,包括了headers,json,method,urlApi的实际请求体
headers同接口的headers字段,cookie等信息写在此处
Json接口的请求参数按照层级关系控制缩进写在此处
Method接口的请求方式
Url接口的请求地址当有base_url存在时,可以只写host之后的路径
extract取值当需要获取接口响应值的某个字段时,需要在该字段下定义
json取值methodName: content.header.stackTraceElements.0.methodName
正则取值methodName :左边(.+?)右边
validate断言- eq: ["$methodName", success]

https://www.cnblogs.com/luoman/p/12844300.html 其他博主写的断言的详细说明

case文件

和api重复的字段不再重复说明
在这里插入图片描述

字段解析使用
configcase文件的公共区域 case中所有步骤都能使用到的一些参数会在该字段下定义
Namecase的名称
Variables、base_url和api一样,只是作用域是全部的步骤
teststeps测试步骤所有的测试步骤,在该路径下
suite文件

除了testcases和路径名称是testcase以外和case文件没有任何区别

文件的执行

有点点击你要执行的yml文件(可以是api,也可以是testcase或者testsuite文件),选择copy path 然后如下图选择相对路径;注意!! 请在项目路径下执行下行命令,否则不能正确读取debugtalk的自定义方法

hrun  api/演示/PC/storeList门店列表.yml

在这里插入图片描述

执行结果

在这里插入图片描述

尾言

后续还会更新关于httprunner的一些进阶使用和遇到的坑,如果大佬们发现有什么错误,请帮忙指出

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值