快速创建项目

使用hrun命令快速创建用例分层的项目,命令如下:

1
hrun --startproject hrun_test_api(项目名称)

执行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
lvjing@lvjingdeMacBook-Pro httprunner-project % hrun --startproject hrun_test_api
Start to create new project: hrun_test_api
CWD: /Users/lvjing/httprunner-project

created folder: hrun_test_api
created folder: hrun_test_api/api
created folder: hrun_test_api/testcases
created folder: hrun_test_api/testsuites
created folder: hrun_test_api/reports
created file: hrun_test_api/api/demo_api.yml
created file: hrun_test_api/testcases/demo_testcase.yml
created file: hrun_test_api/testsuites/demo_testsuite.yml
created file: hrun_test_api/debugtalk.py
created file: hrun_test_api/.env
created file: hrun_test_api/.gitignore
lvjing@lvjingdeMacBook-Pro httprunner-project % ls
hrun_test_api

创建完成后,会自动生成一个hrun_test_api项目,我们用PyCharm将该项目打开

image-20210813124917465

从项目结构上来看,Httprunner2.x最大的特点就是用例分层,每一层做自己该做的事情,层级非常清晰

  • api:接口的描述(接口的名称、请求参数、请求地址、请求方式,header、校验基本参数等)
  • testcases:测试用例(先后调用不同的接口,测试步骤的有序集合,校验业务逻辑等)
  • testsuites:测试用例集(测试用例是相同的,参数是不一样的)
  • reports:测试报告
  • .env:配置文件,保存一些测试数据,比如:账号密码等敏感数据
  • debugtalk.py:辅助函数,比如:接口签名,接口加密解密等

API层-分层概念

几点核心概念:

  • 测试用例(testcase)应该是完整且独立的,每条测试用例应该是都可以独立运行的
  • 测试用例是测试步骤(teststep)的有序集合,每一个测试步骤对应一个API的请求描述
  • 测试用例集(testsuite)是测试用例的无序集合,集合中的测试用例应该都是相互独立,不存在先后依赖关系的;如果确实存在先后依赖关系,那就需要在测试用例中完成依赖的处理