• 2
  • 3
分享
  • 自从学了这套框架,自动化+性能都解决了——软件测试圈
  • quinn 2022-11-16 14:51:10 字数 1652 阅读 2399 收藏 3

框架介绍

1、HttpRunner

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

2、Locust

Locust是一款易于使用的分布式用户负载测试工具。它用于对网站(或其他系统)进行负载测试,并确定系统可以处理多少并发用户。HttpRunner 通过复用Locust ,可以在无需对 YAML/JSON 进行任何修改的情况下,直接运行性能测试。

3、 httprunner使用手册

附httprunner中文使用文档地址:cn.httprunner.org/

环境安装

  1. 安装httprunner:   pip install httprunner==2.2.5

  2. 安装har2case:    pip install har2case

  3. 检查安装是否成功:hrun -h/-v;har2case -h/-v

  4. 安装locust:    pip install locustio

新增命令

在 HttpRunner 安装成功后,系统中会新增如下 5 个命令:

  1. httprunner: 核心命令。

  2. hrun: httprunner 的缩写,功能与 httprunner 完全相同。

  3. locusts: 基于 Locust 实现性能测试。

  4. har2case: 辅助工具,可将标准通用的 HAR 格式(HTTP Archive)转换为YAML/JSON格式的测试用例。

用例生成

(1)利用fiddler/charles对接口数据进行抓包,将结果导出为XX.har文件。

1.png

2.png

3.png

status_code:请求的状态码

headers.Content-Type:将响应头的内容格式做验证

content.msg:响应内容的关键字作为验证

config:作为整个测试用例集的全局配置项,包括变量(variables,name)

test:对应单个测试用例

name 这个test的名字(用例的名称)

request 这个test具体发送http请求的各种信息, 如下:

url 请求的路径 (若config中有定义base_url, 则完整路径是用 base_url + url )

method 请求方法 POST, GET等等

headers:请求头

请求体:json格式的数据

validate(断言):完成请求后, 所要进行的验证内容. 所有验证内容均通过该test才算通过,否则失败.

参数化:

4.png

测试用例(testcase)嵌套testcases

测试用例集是测试用例的无序集合,集合中的测试用例应该都是相互独立,不存在先后依赖关系的。

如果确实存在先后依赖关系怎么办,例如登录功能和下单功能。正确的做法应该是,在下单测试用例的前置步骤中执行登录操作。

5.png

变量取值:

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

  • config:作为整个测试用例的全局配置项,作用域为整个测试用例;

  • test:测试步骤的变量空间context会继承或覆盖config中的定义的内容;

- 若某变量在config中定义了,在某test中没有定义,则该test会继承该变量

- 若某变量在config中和某test中都定义了,则该test中使用自己定义的变量值

  • 各个测试步骤test的变量空间相互独立,互不影响;

  • 如需在多个测试步骤test中传递参数值,则需要使用extract关键字,并且只能从前往后传递

6.png

响应头和响应体的提取

7.png

可以看出,通过点( . )运算符,我们可以从上往下逐级定位到具体的字段:

  • 当下一级为字典时,通过.key来指定下一级的节点,例如.person,指定了content下的person节点;

  • 当下一级为列表时,通过.index来指定下一级的节点,例如.0,指定了cities下的第一个元素。

提取HTML的内容(正则表达式)

8.png

9.png


作者:编程简单学

原文链接:https://blog.csdn.net/weixin_54556126/article/details/123365293

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • JMeter 是一个功能强大的性能测试工具,可以模拟许多用户同时访问应用程序的情况。在使用 JMeter 进行性能测试时,设置并发是非常重要的。本文将介绍如何在 JMeter 中设置并发和查看报告。设置并发并发是在线程组下的线程属性中设置的。线程数:10 个线程就是模拟 10 个用户。Ramp-Up 时间 (秒):线程准备时长。如果线程数为 10,准备时长为 10,那么需要 1秒钟启动 1 个线程。循环次数。如果线程数为 10,循环次数为 10,那么每个线程发送 10 次请求。总请求数为 10*10 = 100。如果勾选了“永远”,那么所有线程会一直发送请求,直到手动停止。查看报告JMeter...
            0 0 1521
            分享
          • 先通过一个简单的类比说个好理解的,这个比喻是我从美版知乎Quora上看到的,觉得比较形象、好理解拿来用用。可以把WebDriver驱动浏览器类比成出租车司机开出租车。类比在开出租车时有三个角色:乘客:他/她告诉出租车司机去哪里,大概怎么走 出租车司机:他按照乘客的要求来操控出租车 出租车:出租车按照司机的操控完成真正的行驶,把乘客送到目的地在WebDriver中也有类似的三个角色:自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动、谷歌驱动) 浏览器驱动:它来解析这些自动化测试的代码,解析后把它们发送给浏览器 浏览器:执行浏览器驱动发来的指令,并最终完成工程师想要的操作。所以在...
            0 1 956
            分享
          • 配置要求:小程序X5内核浏览器环境配置1.使用微信浏览器进入debugx5.qq.com,勾选调试功能,如果进入页面不是这个X5调试的话,先跳过2.如果进入的不是x5内核,先进入debugmm.qq.com/?forcex5=true获取小程序的进程和名字1.我们先使用微信进入一个小程序,比如我这边进入BOSS直聘(进入之前尽量把所有的程序都杀死,方便我们找到小程序)adb shell dumpsys activity top | findstr ACTIVITY#获取正在运行的程序 adb shell ...
            0 0 1841
            分享
          • 1. Android 调试桥adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用。Tips: 在 android_sdk/platform-tools/ 中找到 adb 工具,然后根据其具体的路径配置好环境变量。然后启动cmd 输入‘adb’即可查看是否配置成功。2. adb工作原理启动一个 adb 客户端时,此客户端首先检查是否有已运行的 adb 服务器进程。如果没有,它将启动服务器进程。当服务器启动时,它...
            0 0 2494
            分享
          •   今天给大家推荐一款基于Python的网页自动化工具:DrissionPage。这款工具既能控制浏览器,也能收发数据包,甚至能把两者合而为一,简单来说:集合了WEB浏览器自动化的便利性和 requests 的高效率。  一、DrissionPage产生背景  实现网页自动化,会有两类形式: - 直接向服务器发送请求数据包,获取需要的数据 - 模拟真实用户操作行为,控制浏览器跟网页进行交互  前者轻量级,速度快,例如requests 库。但requests面对需要登录的网站时,往往还要应付验证码、JS 混淆、签名参数等反爬手段,门槛较高。若数据是由 JS 计算生成的,还须重现计算过程,开发效率...
            0 0 3164
            分享
      • 51testing软件测试圈微信