httprunner测试框架1--坏境搭建及案例演示

httprunner简介

httprunner是一款面向HTTP/HTTPS协议的通用测试框架,只需要编写维护一份yaml/json脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。

特性

  • 继承request的全部特性,轻松实现HTTP(S)的各种测试需求
  • 测试用例与代码分离,采用yaml/json的形式描述测试场景,保障测试用例具备可维护性
  • 测试用例支持分层机制,充分实现测试用例的复用
  • 测试用例支持参数化和数据驱动机制
  • 使用skip机制实现对测试用例的分组执行控制
  • 测试请求支持完善的hook机制
  • 支持热加载机制,在文本测试用例中轻松实现负载的动态计算逻辑
  • 基于HAR实现接口录制和用例生成功能
  • 具有可拓展性,便于拓展实现WEB平台化(httprunnerManager)

下载安装

使用pip3安装httprunner
pip3 install httprunner==1.5.8
安装完成后,输入hrun -V查看是否安装成功,如果显示 bash: hrun: command not found...则需要添加软链接。

  • 使用find命令查找hrun安装的目录:find / -name hrun
  • 使用ln -s 添加软链接:ln -s /root/python36/bin/hrun /usr/bin/hrun
  • 在这里插入图片描述

用例设计

httprunner的测试用例支持两种文件格式:YAML/JSON,以YAML为例。
比如:淘宝查询电话号码归属地(可用)https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=手机号
更多练习的接口可以参考
test.yaml

- config:
    name: 查询号码归属地
    request:
      base_url: https://tcc.taobao.com/cc/json
- test:
    name: 接口正常访问
    request:
      url: /mobile_tel_segment.htm
      method: GET
      json:
        tel: '13330232962'
    validate:
      - eq: [status_code,200]

运行用例

打开cmd命令行,进入测试用例yaml文件所在目录。我的D:\python_work\study_hrun\day_01

cd D:\python_work\study_hrun\day_01
hrun test.yaml

在这里插入图片描述

查看测试报告

运行结束后,在当前运行的目录下会生成一个 reports 目录,里面会生成 html
的测试报告,浏觅器打开 html 报告如下:
在这里插入图片描述
点开log可以查看请求的request和返回的response详情
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试用例结构

在httprunner中,测试用例组织只要基于三个概念:

  • 测试用例集:对应一个文件夹,包含单个或多个测试用例(yaml/json)文件
  • 测试用例:对应一个yaml/json文件,包干单个或多个测试步骤
  • 测试步骤:对应yaml/json文件中一个test,描述单词接口测试的全部内容,包括发送接口请求、解析响应结果、校验结果等。
    对于单个YAML/JSON文件来说,数据存储结构为list of dict,其中可能包含一个全局配置项(config)和若干个测试步骤(test)。
  • config:作为整个测试用例的全局配置项
  • test:对应单个测试步骤,测试用例存在顺序关系,运行时将从前往后依次运行各个测试步骤。

变量空间作用域

在测试用例内部,httprunner划分了两层变量空间作用域。

  • config:作为整个测试用例的全局配置项,作用域在这个测试用例
  • test:测试步骤的变量空间,会继承或覆盖config中定义的内容(若某变量在config中定义了,在某test中没有定义,则该test会继承该变量;若某变量在config和某test中都定义了,则会覆盖test会调用自己定义的变量值)
  • 各个步骤(test)的变量空间相互独立,互不影响
  • 如果需要在多个测试步骤(test)中传递参数值,则需要使用extract关键字,并且只能从前往后传递

相关配置说明

- config: 整个测试用例集的全局配置项

	name:用例集的名称,在测试报告中将作为标题。(必填)
	variables:定义的全局变量,作用域为整个用例。
	parameters:全局参数,用于实现数据化驱动,作用域为整个用例
	request:request的公共参数,作用域为整个用例,常用的参数包括base_url和headers。base_url-->测试用例请求的公共host,指定后test中的url只描述path部分、headers-->request中headers的公共参数、output-->整个用例输出的参数列表,可输出的参数包括公共的variables和extract的参数,在log-level为debug模式下。

- test:对应的单个测试用例

  name:测试用例名称,在测试报告中作为测试步骤的名称(必填).
  request: 这个test具体发送的 http 请求的各种信息(必填).  
  		url-->请求路径,完整的请求路径为url+base_url(如果config中request定义了base_url);
  		method-->请求方式;
  		json-->请求参数;
  	    headers-->请求头部。
  variables:测试步骤中定义的变量,作用域为当前测试步骤
  extract:从当前http请求爱的响应结果中提取参数,并保存到参数变量中。比如token,后面介绍
  validate:测试用例中定义的结果校验项,作用域是当前测试用例,用于校验结果
  setup_hooks:在http请求发送前执行hook函数,主要用于准备工作
  teardown_hooks:在http请求发送后执行hook函数,主要用于测试后的清理工作
发布了28 篇原创文章 · 获赞 0 · 访问量 382

猜你喜欢

转载自blog.csdn.net/qq_42098424/article/details/105011382