A10_HttpRunner项目结构_09_按推荐项目结构组织文件
![8bcdb5319fcadd80d122da2445c9a53a.png](https://i-blog.csdnimg.cn/blog_migrate/48e497abb6e86197541a1b2105349d5c.jpeg)
在对项目进行接口测试的时候,可以根据项目测试规模来组织文件结构。
参考官方文档:
- https://docs.httprunner.org/prepare/project-structure/
- https://docs.httprunner.org/prepare/testcase-structure/
- https://docs.httprunner.org/prepare/testcase-layer/
1.对于接口数比较少,或者测试场景比较简单的项目,组织测试用例时无需分层。
在此种情况下,项目文件的目录结构没有任何要求,在项目中只需要一堆 YAML/JSON 文件即可,每一个文件单独对应一条测试用例;根据需要,项目中可能还会有 debugtalk.py、.env等文件。
推荐的项目文件目录结构示例如下:
![d447b408bf28811c4b2513b344342dc4.png](https://i-blog.csdnimg.cn/blog_migrate/784f17066e9a8ca00d61316667c10d77.jpeg)
最简单的项目文件组织结构
2. 从约定大于配置的角度,最好是按照推荐的文件夹名称进行存储管理,并可通过子目录实现项目模块分类管理。
推荐的方式汇总如下:
- debugtalk.py 放置在项目根目录下,假设为 PRJ_ROOT_DIR
- .env 放置在项目根目录下,路径为 PRJ_ROOT_DIR/.env
- 接口定义(API)放置在 PRJ_ROOT_DIR/api/ 目录下
- 测试用例(testcase)放置在 PRJ_ROOT_DIR/testcases/ 目录下
- 测试用例集(testsuite)文件必须放置在 PRJ_ROOT_DIR/testsuites/ 目录下
- data 文件夹:存储参数化文件,或者项目依赖的文件,路径为 PRJ_ROOT_DIR/data/
- reports 文件夹:存储 HTML 测试报告,生成路径为 PRJ_ROOT_DIR/reports/
如果要按照此方式组织,可以通过 HttpRunner 的脚手架功能(见前面章节介绍)来实现,自动帮我们构造好一个初始的目录和文件结构。
命令:
hrun --startproject pro01
自动生成的目录结构:
![a6a358f4351c5c8f99c9dd72a1961e72.png](https://i-blog.csdnimg.cn/blog_migrate/595600a4a71be353f9eb0608d5fcfb33.jpeg)
接下来我们按照这个结构,将前面测试集合的案例文件重新整理。
1. 通过脚手架命令新建一个项目
项目建成后,在各文件夹中会自动生成一个演示的 Demo 文件,我们直接将这些演示文件删除即可。
![8c130725e72024e0618428172032f674.png](https://i-blog.csdnimg.cn/blog_migrate/0ca2491393b7291bc1834c97d2dd8556.jpeg)
通过脚手架命令,自动生成推荐的项目目录结构
2. 将文件分别存入对应文件夹:
- 两个接口定义文件,存入 api 文件夹中
- 两个测试用例文件,存入 testcases 文件夹中
- 一个测试集合文件,存入 testsuites 文件夹中
![9f06a634343e460c27ac5013c08f5b78.png](https://i-blog.csdnimg.cn/blog_migrate/488bdfa3ce233d7c9273bb12cc22e773.jpeg)
3. 修改引用路径
将不同文件放入相应的文件夹后,在引用这些文件的时候,需要指明其路径所在。
引用方式为对应测试用例文件的路径,绝对路径或相对路径均可。推荐使用相对路径,路径基准为项目根目录,即 debugtalk.py 所在的目录路径。
原引入写法:
testcase: gitee_test01_get_master.yml
修改后写法:
testcase: testcases/gitee_test01_get_master.yml
修改测试集合引用路径:
config: name: 测试获取 “某个分支” 和 “某个分支所有提交” 接口testcases: testcase 1: name: 获取“某个分支” # 通过相对路径引入测试用例。相对于当前项目根目录 testcase: testcases/gitee_test01_get_master.yml testcase 2: name: 获取“某个分支所有提交” # 通过相对路径引入测试用例。相对于当前项目根目录 testcase: testcases/gitee_test02_get_commits.yml
修改用例对API文件的引用路径
- config: name: 测试获取“仓库某个分支”接口- test: name: 获取 master 分支 # 引用时指明相对路径 api: api/gitee_api_get_branch.yml
- config: name: 测试获取“仓库某个分支所有提交”接口- test: name: 测试获取 master 分支所有提交 # 引用时指明相对路径 api: api/gitee_api_get_commits.yml
4. 执行测试用例集合文件
![5bca3ec6f1b089960d4c1fdc71d9abcd.png](https://i-blog.csdnimg.cn/blog_migrate/7273fe971b2af7c2c386de958647d95c.jpeg)
运行测试集合有两种方式(运行用例方法类似),在 hrun 命令后面可以使用:
- 测试用例集合所在文件夹名称:运行该文件夹下的所有测试集合文件
- 某个测试用例集合的名称:单独运行此测试用例集合
如:
按“文件夹名”,运行该文件夹下所有测试用例集合文件:
hrun testsuites
按“文件名”,运行该指定的一个测试用例集合文件
hrun testsuites/gitee_suite.yml
按“文件夹名”,运行该文件夹下所有测试用例文件:
hrun testcases
按“文件名”,运行该指定的一个测试用例文件
hrun testcases/gitee_test01_get_master.yml