5

自从学了这套框架,自动化+性能都解决了

 2 years ago
source link: https://blog.csdn.net/weixin_54556126/article/details/123365293
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

自从学了这套框架,自动化+性能都解决了

框架介绍

  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文件。

 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才算通过,否则失败.

  参数化:

测试用例(testcase)嵌套testcases

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

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

变量取值:

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

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

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

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

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

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

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

  响应头和响应体的提取

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

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

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

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

-每天学习一点,今后必成大神-

关注下方公众号,领取海量软件测试学习资料


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK