独孤湘瑶  

声明:本文所记录的仅本次操作学习到的知识点,其中商城IP错误,请自行更改。

背景:一个接口的不同情况,其实就是请求参数不一样、期望结果不一样。把这些不一样的东西都提取出来进行管理,下次可以直接使用。因此需要用到【数据驱动-参数化】。

思路

  • 准备文件;
  • 配置CSV控制元件--引用文件、设置变量名;
  • 接口请求引用这些变量;
  • 因为需要运行多次,需要加循环控制器;
  • 运行后查看结果树。

 

1.认识JMeter

(1)CSV Data Set Config

  CSV格式的数据集配置。很多配置数放在一个文档里面,然后上传到JMeter里,实现数据驱动。

 

2.CSV Data Set Config

(1)准备好配置文件

① 首行为标题行,显示变量名

② 从第二行开始显示变量值,每个值都是按照首行变量名的顺序显示;

③ 有为空的变量值,不能省略,为空显示

④ 所有标点符号都是英文符号

⑤ 文件格式最好为笔记本 .txt 格式(常用的格式);

(2)新建【CSV Data Set Config】

右击【线程组】【添加】【配置元件】【CSV Data Set Config】

(3)配置【CSV Data Set Config】

① 文件名:点击【浏览】,选择准备好的【登录】文件。

② 文件编码:UTF-8

③ 变量名称:配置文件中首行的变量名(直接复制粘贴即可)。CASEName,accounts,pwd,res

④ 忽略首行:True(首行为标题行,不是参数值)。

3.HTTP请求默认值-SIT环境

虽然本次不需要设置默认值,建议养成习惯,方便多环境测试。

4.循环控制器

(1)新建【循环控制器】

右击【线程组】【添加】【逻辑控制器】【循环控制器】

(2)配置【循环控制器】:

循环次数:根据CSV配置文件中的数据来控制循环次数,一次循环就是读取一行值(忽略首行),一共4行值,就只要读取4次。

5.HTTP请求【登录】

(1)新增【登录】

  在【循环控制器】层级下新增【登录】HTTP请求。

(2)设置【登录】

        ① 直接复制粘贴上个操作的【登录】
        ② 参数值${变量名} :注意变量名需与【CSV数据文件设置】中的变量名一致

(3)设置【JSON断言】

  由于CSV配置文件中的每行数据的预期结果不一样,所以【断言】的预期结果也不能固定为“登录成功”;

  注意!这里两个地方获取值的方式不一样:

    一个是获取响应数据中的字段值,通过JSONPATH方式取值,$.字段名

    一个是获取变量名称的参数值,通过函数 ${变量名} 的方式。

①预期结果:${res},变量名res是【CSV数据文件设置】中的变量名。

7.查看结果树

层级注意:【循环控制器】应该在【CSV数据文件设置】层级外面。

  问题:四次登录都是同一个用户【20200102】登录成功,响应数据除了【token】其它字段值都一致。

  原因:JMeter线程组是从上往下执行,第一次读取【CSV数据文件设置】中的数据,是从第2行(忽略首行)开始,读取第2行数据,然后执行到【控制循环器】时,循环执行了4次。后面第3行、第4行等数据都没有机会再获取了,因为【循环控制器】执行完后,整个线程组就跑完了。

解决:把【CSV数据文件设置】放在【循环控制器】层级下面,【登录】的前面。

预期结果不一致(公司比较较真)

  一定要有一个能够确认需求的人去确认,不要测试自己跟开发扯,没意义。

 

posted on 2024-07-19 02:32  独孤湘瑶  阅读(1)  评论(0编辑  收藏  举报