HttpRunner学习记录(一)

HttpRunner V2.x中文使用文档:https://cn.httprunner.org/

HttpRunner 安装

HttpRunner 的稳定版本托管在 PyPI 上,可以使用 pip 进行安装。

pip install httprunner

如果你需要使用最新的开发版本,那么可以采用项目的 GitHub 仓库地址进行安装:

pip install git+https://github.com/HttpRunner/HttpRunner.git@master

假如你之前已经安装过了 HttpRunner,现在需要升级到最新版本,那么你可以使用-U参数。该参数对以上三种安装方式均生效。

pip install -U HttpRunner
pip install -U git+https://github.com/HttpRunner/HttpRunner.git@master

简单的进行一下安装验证,关于开发者模式的下载安装,参考HttpRunner V2使用文档
在这里插入图片描述

用例分层

新建项目时,可使用 --startproject 脚手架功能快速创建项目目录结构;模式是采用:测试用例分层机制

hrun --startproject demo

在这里插入图片描述

测试用例分层结构

对于接口数比较多,或者测试场景比较复杂的项目,为了使测试用例更便于组织和维护,推荐使用测试用例分层机制,即单独维护 API 描述、测试用例和测试场景。

在此种情况下,项目文件的目录结构需要遵循一些规范:

  • debugtalk.py:该文件所在目录将作为项目工程的根目录,api 文件夹都必须与其放置在相同目录
  • api 文件夹:存储接口定义描述
  • reports 文件夹:存储 HTML 测试报告
  • testcases 文件夹(非必须):存储测试用例,文件夹也可以使用其它名称
  • testsuite 文件夹(非必须):测试测试场景,文件夹也可以使用其它名称

对应的项目文件目录结构示例如下:

demo
├── .env
├── api
│   └── user.yml
├── debugtalk.py
├── reports
│   └── 1535713039.html
├── testcases
│   ├── login.yml
│   └── logout.yml
└── testsuites
    └── login_and_logout.yml

用例组织

在这里插入图片描述

  • 测试用例集(testsuite):对应一个文件夹,包含单个或多个测试用例(YAML/JSON)文件
  • 测试用例(testcase):对应一个 YAML/JSON 文件,包含单个或多个测试步骤
  • 测试步骤(teststep):对应 YAML/JSON 文件中的一个test,描述单次接口测试的全部内容,包括发起接口请求、解析响应结果、校验结果等

对于单个 YAML/JSON 文件来说,数据存储结构为 list of dict 的形式,其中可能包含一个全局配置项(config)和若干个测试步骤(test)

  • config:作为整个测试用例的全局配置项
  • test:对应单个测试步骤(teststep),测试用例存在顺序关系,运行时将从前往后依次运行各个测试步骤

对应json格式:

[
  {
    "config": {...}
  },
  {
    "test": {...}
  },
  {
    "test": {...}
  }
]

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

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

config和test中的参数,参考HttpRunner 使用文档 测试用例组织一节

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页