httprunner自动化测试从头开始

1 篇文章 0 订阅
1 篇文章 0 订阅



前言

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

采用 YAML/JSON 的形式描述测试场景,保障测试用例描述的统一性和可维护性

借助辅助函数(debugtalk.py),在测试脚本中轻松实现复杂的动态计算逻辑

支持完善的测试用例分层机制,充分实现测试用例的复用。


一、Httprunner

1.简介

  • 它是面向http协议的测试框架,只需要去维护啊一份yaml/json文件就可以使用自动化测试,结合locust性能测试,线上性能监控,持续集成等多种需求

  • 它有两个版本:2.x和3.x

2.设计思想和理念

  • Go语言编写
  • 支持跨平台
  • 支持多种协议的代理
  • web管理端

3.运行环境

  1. HttpRunner 是一个基于 Python 开发的测试框架,可以运行在macOS、Linux、Windows 系统平台上。
  2. Python 版本:HttpRunner 支持 Python 3.4 及以上的所有版本,并使用 Travis-CI 进行了持续集成测试,测试覆盖的版本包括2.7/3.4/3.5/3.6/3.7。虽然 HttpRunner 暂时保留了对 Python 2.7 的兼容支持,但强烈建议使用 Python 3.4 及以上版本。
  3. 操作系统:推荐使用 macOS/Linux。

4.Httprunner环境搭建

  1. 支持python2.7、推荐3.7
  2. 直接安装Httprunner
pip install httprunner

pip install har2case
  1. 验证环境 出现下图版本号就恭喜您成功
hrun -V
​har2case -V

效果图

5.运行环境

  1. httprunner startproject demo 创建工程
    请添加图片描述
    YAML/JSON(必须):测试用例文件,存储接口测试相关信息
    debugtalk.py(可选):存储项目中逻辑运算辅助函数,该文件存在时,将作为项目根目录定位标记,其所在目录即被视为项目工程根目录,该文件不存在时,运行测试的所在路径(CWD)将被视为项目工程根目录
    .env(可选):存储项目环境变量,通常用于存储项目敏感信息
    .csv(可选):项目数据文件,用于进行数据驱动
    reports:默认生成测试报告的存储文件夹

6.基本语法

1、k:(空格)v:表示一对键值对(空格必须有),不支持table键,一般手动空格
2、以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的
3、属性和值大小写敏感
4、# 表示注释
5、null是用~表示
6、支持的数据结构:
对象:键值对的集合
数组:一组按次序排列的值

纯量(scalars):单个的、不可再分的值
字符串、布尔值、整数、浮点数、时间、日期、null

七.例子

  1. 手写yaml较为繁琐与麻烦,这里推荐采用抓包方式自动生成yaml

  2. 推荐使用 Fiddler Everywhere 抓包软件 [点击下载:微信搜索【小白看Java】关注发送0001获取提取码](链接: https://pan.baidu.com/s/1e0eauQ_30nkatqdVVNtvpg)

  3. Postman调用你要测试的接口(如下:)
    在这里插入图片描述

  4. 在Fiddler Everywhere 将请求包抓取下来,并放在之前创建的项目里面
    在这里插入图片描述

  5. 执行Har2case 文件.har -2y 将抓的包转换为yaml文件
    在这里插入图片描述

八.配置解释

  1. config参数说明,(注:output用法(也可以用export代替)):
    在这里插入图片描述

  2. 实际演示
    在这里插入图片描述
    validate 可以支持的校验方式

comparator缩写功能
equal“eq”, “equals”, “equal”相等
less_than“lt”, “less_than”小于
less_or_equals“le”, “less_or_equals”小于或等于
greater_than“gt”, “greater_than”大于
greater_or_equals“ge”, “greater_or_equals”大于或等于
not_equal“ne”, “not_equal”不等于
string_equals“str_eq”, “string_equals”转字符串相等
length_equal“len_eq”, “length_equal”长度相等
length_greater_than“len_gt”,“length_greater_than”长度大于
length_greater_or_equals“len_ge”,“length_greater_or_equals”长度大于或等于
length_less_than“len_lt”, “length_less_than”长度小于
length_less_or_equals"“len_le”, “length_less_or_equals”长度小于或等于
containscheck_value 包含 expect_value
contained_byexpect_value 包含check_value
type_matchtype类型匹配
regex_match正则匹配re.match(expect_value, check_value)
startswith字符串以xx开头
endswith字符串以xx结尾

关注点赞👍获取

谢谢大哥们关注

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白看Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值