测试场景:
有个查询城市(大概一百个 )天气预报的接口(需求参考第一课),需要根据不同的citycode,去查询对应城市的天气预报,这种接口该如何去测试呢?
分析需求:
不管是功能测试需求,还是接口测试需求,首先要先学会分析需求,然后设计测试用例。对于上面的一百多个城市天气预报,小伙伴们是如何设计用例的呢?
一百多个城市的天气预报,我不可能一个个去手工测,一是比较耗时间,二是重复劳动。就算你这次一口气测了一百多个,下次版本更新,你做回归测试也得重新测。(也许你会偷懒,只测两三个,但是做测试不要抱侥幸心理,说不定100个功能你测了N变都是正常的,突然有一天你只测了99个,然后上线了,发现就是漏的那个出了问题,嘿嘿~)
那么对于这种接口不变,只是改下请求参数的测试,我们可以考虑引入参数化到概念,很显然jmeter这款工具非常人性化的,也支持多种参数化设计,接下来就详细介绍下,如何使用jmeter参数化做接口自动化。
其实参数化只需简单七步就能搞定
-
准备数据
-
配置原件
-
定义参数
-
设置参数
-
引用参数
-
编码格式
-
执行用例
第一步:数据准备
备注:线程总数为10,总时间为10,说明每一秒启动一个线程,一秒执行一次用例
第二步:测试计划-添加-配置原件-CSV Data Set Config
第三步:设置界面填入对应参数
-
Filename:填写文件的完整路径(当数据文件在bin目录下时,只需给出文件名即可)
-
File encoding:文件编码格式
-
Variable Name:变量的名称(多个变量中间用英文符号隔开)
-
Virable Names中填写变量名,如果数据文件中有多个变量,则用符号隔开
其它的设置(有需求的自己可以尝试下)
-
Allow Quoated data: 双引号相关
-
Recycle on EOF: 设置为True后,允许循环取值
-
Stop Thread on EOF: 当Recycle on EOF为false并且Stop Thread on EOF为true,则读完csv文件中的记录后,停止运行
-
Sharing Mode: 设置是否线程共享
第四步:填入对应参数后如下图所示
符号保持一致,并且都是英文的符号
第五步:引用设置的参数
这里设置了两个参数,第一个地方是请求路径里面,将citycode参数化了,第二个地方是断言里面,将城市参数化了
1.讲请求路径里面的citycode换成:${citycode}
2.将断言里面的城市名称,换成:${city}
第六步:编码格式保持一致
windows系统默认的编码是ANSI,如果是linux系统,试试用utf-8格式了。