前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >httprunner 2.x学习7-参数化(引用外部csv数据)

httprunner 2.x学习7-参数化(引用外部csv数据)

作者头像
上海-悠悠
发布2020-06-17 15:25:11
7730
发布2020-06-17 15:25:11
举报

前言

httprunner 参数化数据源指定支持三种方式:

  • 在 YAML/JSON 中直接指定参数列表:该种方式最为简单易用,适合参数列表比较小的情况
  • 通过内置的 parameterize(可简写为P)函数引用 CSV 文件:该种方式需要准备 CSV 数据文件,适合数据量比较大的情况
  • 调用 debugtalk.py 中自定义的函数生成参数列表:该种方式最为灵活,可通过自定义 Python 函数实现任意场景的数据驱动机制,当需要动态生成参数列表时也需要选择该种方式

环境:httprunner==2.5.7

本篇讲解内置的 parameterize(可简写为P)函数引用 CSV 文件

独立参数

对于已有参数列表,并且数据量比较大的情况,比较适合的方式是将参数列表值存储在 CSV 数据文件中。

对于 CSV 数据文件,需要遵循如下几项约定的规则:

  • CSV 文件中的第一行必须为参数名称,从第二行开始为参数值,每个(组)值占一行;
  • 若同一个 CSV 文件中具有多个参数,则参数名称和数值的间隔符需实用英文逗号;
  • 在 YAML/JSON 文件引用 CSV 文件时,文件路径为基于项目根目录(debugtalk.py 所在路径)的相对路径。

例如,user_id 的参数取值范围为 1001~2000,那么我们就可以创建 user_id.csv,并且在文件中按照如下形式进行描述。

user_id
1001
1002
...
1999
2000

然后在 YAML/JSON 测试用例文件中,就可以通过内置的 parameterize(可简写为 P)函数引用 CSV 文件。

config:
    name: "demo"

testcases:
    testcase1_name:
        testcase: /path/to/testcase1
        parameters:
            user_id: ${P(data/user_id.csv)}

即 P 函数的参数(CSV 文件路径)是相对于项目根目录的相对路径。 当然,这里也可以使用 CSV 文件在系统中的绝对路径,不过这样的话在项目路径变动时就会出现问题,因此推荐使用相对路径的形式。

csv文件存放user数据

先准备测试数据,准备四组登录用的账号和密码,账号为test1,test2,test3,test4,密码统一设置为123456。

data/user_name.csv文件测试数据

user
test1
test2
test3
test4

testsuites/test_param_csv.yml 文件引用 data/user_name.csv 文件语法${P(user_name.csv)}

# testsuites/test_param_csv.yml
# 上海-悠悠,httprunner QQ交流群:1121184576
config:
    name: "test login parameters"

testcases:
   login-参数化:
        testcase: case/test_login.yml
        parameters:
            user: ${P(data/user_name.csv)}

csv存放user和psw数据

data/user_password.csv 文件测试数据

user,password
test1,123456
test2,123456
test3,123456
test4,123456

testsuites/test_param_csv.yml文件引用 data/user_password.csv 文件

# testsuites/test_param_csv.yml
# 上海-悠悠,httprunner QQ交流群:1121184576

config:
    name: "test login parameters"

testcases:
   login-参数化:
        testcase: case/test_login.yml
        parameters:
            user-password: ${P(data/user_password.csv)}

运行结果

cmd执行hrun testsuites/test_param_csv.yml

(venv_hrun) D:\soft\venu_hrun>hrun testsuites/test_param_csv.yml
INFO     HttpRunner version: 2.5.7
INFO     Start to run testcase: login-参参数数化化
login-setup
INFO     POST http://127.0.0.1:8000/api/v1/login/
INFO     status_code: 200, response_time(ms): 338.0 ms, response_length: 110 bytes

.

----------------------------------------------------------------------
Ran 1 test in 0.354s

OK
INFO     Start to run testcase: login-参参数数化化
login-setup
INFO     POST http://127.0.0.1:8000/api/v1/login/
INFO     status_code: 200, response_time(ms): 331.52 ms, response_length: 110 bytes

.

----------------------------------------------------------------------
Ran 1 test in 0.332s

OK
INFO     Start to run testcase: login-参参数数化化
login-setup
INFO     POST http://127.0.0.1:8000/api/v1/login/
INFO     status_code: 200, response_time(ms): 316.43 ms, response_length: 110 bytes

.

----------------------------------------------------------------------
Ran 1 test in 0.316s

OK
INFO     Start to run testcase: login-参参数数化化
login-setup
INFO     POST http://127.0.0.1:8000/api/v1/login/
INFO     status_code: 200, response_time(ms): 300.28 ms, response_length: 110 bytes

.

----------------------------------------------------------------------
Ran 1 test in 0.300s

OK
INFO     Start to render Html report ...
INFO     Generated Html report: D:\soft\venu_hrun\reports\20200613T022146.605872.html

V1.x版本测试数据csv文件只能与测试用例文件放在同一目录,V2.x版本支持写对路径,以文件路径为基于项目根目录(debugtalk.py 所在路径)的相对路径。如:data/user_id.csv

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 独立参数
  • csv文件存放user数据
  • csv存放user和psw数据
  • 运行结果
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档