当前位置: 首页 > 工具软件 > Report Runner > 使用案例 >

HTTPRUNNER2.0框架(六):工具全流程使用方法

朱锐
2023-12-01

0、初始化接口自动化项目,httprunner/hrun --startproject your_projectName

  • api:生成的api接口测试用例目录
  • reports:执行测试用例默认的报告目录
  • testcases:测试用例目录
  • testsuites:测试用例套件
  • debugtalk.py:是个热处理文件,默认就叫这个名字,其他名字框架不认
  • .env:环境管理
    • .gitignore 可以忽略指定的文件夹及文件

1、环境管理配置文件.env:

关键信息可以写入这里进行管理,如何在测试用例中引用呢?

示例:${ENV(PARAM)}表示调用.env这个环境变量文件中的param参数

tips:env文件变量配置中间不要出现 空行

2、json/yml文件中通过variables设置当前文件下的全局变量;

variables:

key1:value1

key2:value2

引用方式:$key1

3、在httprunner工程目录下,自动会创建一个debugtalk.py文件

场景:如果注册/登录接口的密码加密算法,又或者是构造http的请求头

使用:在debugtalk.py编写我们所需要的函数即可

引用:${function_name()}

4、与variables同级有一个base_url关键字,姑且如此叫

使用场景:在我们json/yml测试用例中,请求的url都是全路径,那么如果是在使用变量替换时,有些繁琐

那么在用例前部分,可以使用base_url来定义接口公用部分,hrun执行用例时,会检查url是否以http开头的,否则会往前找base_url与url进行拼接

tips:在api、testcase中执行测试用例,变量遵循究竟覆盖的原则,即就近获取变量或执行

5、validates断言种类:

- eq:["message","success"]

- {"check":"status","comparator":"eq","expect":200}

- {"check":"content.status","comparator":"eq","expect":200}

tips:content为接收请求响应结果,如果时json自动转换成dict类型,comparator等式:contains

6、extact关键字,提取关联参数,需要注意往往很多接口都有一个content数据返回,那么在提取的时候,会出现content.content.token的情况

第一个是接口响应的整个报文,第二才是响应数据中的字段,然后才是我们需要提取的数据

7、httprunner三种参数化方式

a>paramters的用法,在test suite的yml文件下,testcase下与name同级:将需要参数化的变量参数使用-短连接符连接起来,然后值都是与之对应

paramters:

title-mobile-passwd-status-msg:

["登录成功","10086","111111","200","success"]

["密码错误","10086","123456","200","success"]

["账号不能为空","","123456","200","failture"]

b>文件参数化,如csv,设计用例字段名:表头用逗号隔开,并排输入

title,mobile,passwd,status,msg

登录成功,10086,111111,200,success

密码错误,10086,123456,200,success

使用方式,还是有用到paramters关键字,请求头也不变:

paramters:

title-mobile-passwd-status-msg:${P(csv_path)}

tips:可以是相对路径,csv参数化有一个弊端,int会要认为是str类型

c>debugtalk.py上场,嵌套字典的列表

def get_accounts():
    account=[{"title":"登录成功","mobile":"10086","passwd":"111111","status":"200","msg":"success"},
            {"title":"密码错误","mobile":"10086","passwd":"111111","status":"200","msg":"faiture"},
            {"title":"账号不能为空","mobile":" ","passwd":"111111","status":"201","msg":"failture"}]
    return account

使用方式还是一样使用paramters:

title-mobile-passwd-status-msg:${P(csv_path)}

tips:比较灵活的使用,读取大量的excel用例数据进行参数化

8、平台化,使用httprunner代码命令引用:

from httprunner.api import Httprunner

httprunner=Httprunner()

httprunner.run("yaml_path")

print(httprunner.summary) # 请求结果返回的概要信息

9、hrun执行测试用例可以指定的一些参数:

--log-level LOG_LEVEL 执行时指定日志输出级别,默认为info;Specify logging level, default is INFO.

--log-file LOG_FILE 可以指定日志输出到文件 Write logs to specified file path.

--dot-env-path DOT_ENV_PATH 指定只用环境变量文件路径 Specify .env file path, which is useful for keeping sensitive data.

--report-template REPORT_TEMPLATE 指定报告生成的模板 specify report template path.

--report-dir REPORT_DIR 指定报告目录路径 specify report save directory.

--report-file REPORT_FILE 指定生成报告文件 specify report file name.

--failfast 执行遇到失败的用例时不再执行后面的用例,默认是执行所有用例 Stop the test run on the first error or failure.

--save-tests Save loaded tests and parsed tests to JSON file.

--startproject STARTPROJECT 创建项目 Specify new project name.

--validate [VALIDATE [VALIDATE ...]] 检查测试用例格式是否正确,支持同时检查多个测试用例文件格式 Validate JSON testcase format.

--prettify [PRETTIFY [PRETTIFY ...]] 美化json测试用例格式 Prettify JSON testcase format.

 类似资料: