目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
当数据量比较大的时候,我们希望可以把测试数据写到 CSV 文件中,然后直接引用 CSV 文件数据。
测试场景
如果直接在 YAML/JSON 脚本中指定参数列表内容,那么我们的用例可能就是这样的:
- config:
name: parameters test
request:
base_url: http://api.nnzhp.cn
parameters:
- username-passwd:
- ["niuhanyang", "aA123456"]
- ["test10101", "fasdfasfa"]
- ["test1010", "aA123456"]
- test:
name: login case
request:
url: /api/user/login
method: POST
headers:
Content-Type: application/x-www-form-urlencoded
User-Agent: Fiddler
data:
username: $username
passwd: $passwd
validate:
- eq: [status_code, 200]
- eq: [content.error_code, 0]
上面的用例,只有 3 组测试数据,当我们有10、100组测试数据,如果直接写在测试脚本中,可能会很不方便。
我们可以把这些测试数据都写到CSV文件,然后直接引用CSV文件,这样就方便多了,我们的脚本也显得更加简洁。
CSV中存放单个参数
对于 CSV 数据文件,需要遵循如下几项约定的规则:
文件需放置在与测试用例文件相同的目录中;
CSV 文件中的第一行必须为参数名称,从第二行开始为参数值,每个(组)值占一行;
若同一个 CSV 文件中具有多个参数,则参数名称和数值的间隔符需实用英文逗号。
比如,我们有多组登录的数据,用户名都不一样,但密码都是一样的,我们就可以创建 username.csv,并把 用户名 这一参数写到 username.csv 中,如下:
username
niuhanyang
test10101
test1010
然后在 YAML/JSON 测试用例中,就可以通过 HttpRunner 内置的 parameterize(可简写为P)函数引用 CSV 文件。
parameters:
- username: ${P(username.csv)} # 或者 ${parameterize(username.csv)}
- passwd: ["aA123456"]
注意:HttpRunner中,在 parameters 中指定的参数名称必须与 CSV 文件中第一行的参数名称一致。
CSV中存放多个参数
对于具有关联性的多个参数,比如,我们有多组登录的数据,用户名和密码都不一样,那么我们可以创建 user.csv ,并把用户名和密码的参数写到 user.csv 中。
如下:
username,passwd
niuhanyang,aA123456
test10101,fasdfasfa
test1010,aA123456
再修改一下 YAML 脚本:
parameters:
- username-passwd: ${P(user.csv)} # 或者 ${parameterize(user.csv)}
注意:上面的写法是用户名密码一对一的关系,如果是按下面这样写,那就会是笛卡尔积组合的情况,产生 3 * 3 = 9 种组合。
parameters:
- username: ${P(user.csv)}
- passwd: ${P(user.csv)}
另外,在测试脚本中指定参数时,可以只使用部分参数,并且参数顺序无需与 CSV 文件中参数名称的顺序一致。
运行用例
完整的YAML格式用例(test_csv.yml):
- config:
name: parameters test
request:
base_url: http://api.nnzhp.cn
parameters:
- username-passwd: ${P(user.csv)} # 或者 ${parameterize(user.csv)}
- test:
name: login case
request:
url: /api/user/login
method: POST
headers:
Content-Type: application/x-www-form-urlencoded
User-Agent: Fiddler
data:
username: $username
passwd: $passwd
validate:
- eq: [status_code, 200]
- eq: [content.error_code, 0]
在HttpRunner 1.x版本中,引用 CSV 数据文件(如 user.csv),需要将 user.csv 和 test_csv.yml 放在同一目录下,然后在运行用例即可。
运行用例后的报告如下:
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
奋斗是一场离不开汗水的旅程,每一滴汗都铭记奋斗的勇气和执着。放下疑虑,挺起胸膛,迈出坚定的步伐,只有经历风雨才能见到彩虹。
把梦想当作航向,用奋斗驶向理想的彼岸。路途或许艰辛,但每一次磨砺都是成长的印记。坚持与毅力是成功的基石,不屈不挠是实现梦想的密码。相信自己,勇往直前,你将创造出无限可能!
在奋斗的道路上,不要惧怕挑战,因为它们是成长的催化剂。用勇气驱散恐惧,用拼搏书写辉煌,每一次努力都是向未来进发的动力。