Jmeter接口测试之用例数据分离

之前我们的用例数据都是配置在 Jmeter Http 请求中,每次需要增加,修改用例都需要打开 jmeter 重新编辑,当用例越来越多的时候,用例维护起来就越来越麻烦,有没有好的方法来解决这种情况呢?

其实我们可以将用例的数据存放在 csv 文件中,然后通过 csv 文件配置来读取用例中的数据,执行测试。用例数据如下图所示:
在这里插入图片描述
用例设计

  这里以 httpbin 接口为例,创建用例文件:jmeter-testcase.csv

用例名称变量含义:
${caseSeq}:用例编号
${apiType}:api 类型
${apiSeq} :api 版本号
${apiName}:api 名称
${priority}:优先级
${url}:api 路径
${methods}:请求方法
${parameter}: 请求参数
e x p e c t V a l u e : 期 望 值 , 用 于 断 言 J m e t e r 设 置 步 骤     1. 新 建 一 个 线 程 组 , 命 名 为 : 数 据 驱 动     2. 创 建 一 个 h t t p 请 求 默 认 值 , 设 置 如 下 :         3. 添 加 一 个 循 环 控 制 器 步 骤 为 : 线 程 组 — — 添 加 — — 逻 辑 控 制 器 — — 循 环 控 制 器 。 循 环 控 制 器 的 作 用 可 以 控 制 整 个 用 例 循 环 执 行 的 次 数 。 默 认 值 是 1 根 据 用 例 数 量 可 以 修 改 为 4 ! [ 在 这 里 插 入 图 片 描 述 ] ( h t t p s : / / i m g − b l o g . c s d n i m g . c n / 20190708140915266. p n g ? x − o s s − p r o c e s s = i m a g e / w a t e r m a r k , t y p e Z m F u Z 3 p o Z W 5 n a G V p d G k , s h a d o w 1 0 , t e x t a H R 0 c H M 6 L y 9 i b G 9 n L m N z Z G 4 u b m V 0 L 3 d l a X h p b l 80 M j I x M D Y 4 N w = = , s i z e 1 6 , c o l o r F F F F F F , t 7 0 )     4. 在 循 环 控 制 器 节 点 下 创 建 C S V 文 件 设 置 , 具 体 配 置 内 容 如 下 : ! [ 在 这 里 插 入 图 片 描 述 ] ( h t t p s : / / i m g − b l o g . c s d n i m g . c n / 20190708141027493. p n g ? x − o s s − p r o c e s s = i m a g e / w a t e r m a r k , t y p e Z m F u Z 3 p o Z W 5 n a G V p d G k , s h a d o w 1 0 , t e x t a H R 0 c H M 6 L y 9 i b G 9 n L m N z Z G 4 u b m V 0 L 3 d l a X h p b l 80 M j I x M D Y 4 N w = = , s i z e 1 6 , c o l o r F F F F F F , t 7 0 )     5. 创 建 一 个 i f 控 制 器 , 步 骤 为 : 线 程 组 — — 添 加 — — 逻 辑 控 制 器 — — i f 控 制 器     i f 控 制 器 的 作 用 为 根 据 不 同 条 件 执 行 不 同 的 用 例 , 例 如 这 里 根 据 不 同 的 接 口 请 求 类 型 , 分 别 创 建 了 G E T 和 P O S T 两 个 控 制 器 。     G E T 设 置 的 条 件 语 句 如 下 : ! [ 在 这 里 插 入 图 片 描 述 ] ( h t t p s : / / i m g c o n v e r t . c s d n i m g . c n / a H R 0 c H M 6 L y 9 t b W J p e i 5 x c G l j L m N u L 21 t Y m l 6 X 3 B u Z y 9 C d V Y 0 Z 1 h y T n Z G c U x 2 N H F 6 W F Y 3 b W V z M V B 3 e l Z s e E 1 C Q z l L V 0 N p Y 3 d X a W F 3 T F h y V E 1 a T H d H M H o x Y 3 h u Z 1 d P T E p K a H J z a E x O Z E N k Z 2 h a N 2 Z H V 1 E 3 T 21 n M 29 R L z Y 0 M A )     条 件 语 句 为 : " {expectValue}:期望值,用于断言 Jmeter 设置步骤   1.新建一个线程组,命名为:数据驱动   2.创建一个 http 请求默认值,设置如下:      3.添加一个循环控制器 步骤为:线程组——添加——逻辑控制器——循环控制器。 循环控制器的作用可以控制整个用例循环执行的次数。默认值是 1 根据用例数量可以修改为 4 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190708140915266.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjIxMDY4Nw==,size_16,color_FFFFFF,t_70)   4.在循环控制器节点下创建 CSV 文件设置,具体配置内容如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190708141027493.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjIxMDY4Nw==,size_16,color_FFFFFF,t_70)   5.创建一个 if 控制器,步骤为:线程组——添加——逻辑控制器——if 控制器   if 控制器的作用为根据不同条件执行不同的用例,例如这里根据不同的接口请求类型,分别创建了 GET 和 POST 两个控制器。   GET 设置的条件语句如下: ![在这里插入图片描述](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9CdVY0Z1hyTnZGcUx2NHF6WFY3bWVzMVB3elZseE1CQzlLV0NpY3dXaWF3TFhyVE1aTHdHMHoxY3huZ1dPTEpKaHJzaExOZENkZ2haN2ZHV1E3T21nM29RLzY0MA)   条件语句为:" expectValue:Jmeter  1.线  2.http    3.线14![](https://imgblog.csdnimg.cn/20190708140915266.png?xossprocess=image/watermark,typeZmFuZ3poZW5naGVpdGk,shadow10,textaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjIxMDY4Nw==,size16,colorFFFFFF,t70)  4.CSV:![](https://imgblog.csdnimg.cn/20190708141027493.png?xossprocess=image/watermark,typeZmFuZ3poZW5naGVpdGk,shadow10,textaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjIxMDY4Nw==,size16,colorFFFFFF,t70)  5.if线if  ifGETPOST  GET![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9CdVY0Z1hyTnZGcUx2NHF6WFY3bWVzMVB3elZseE1CQzlLV0NpY3dXaWF3TFhyVE1aTHdHMHoxY3huZ1dPTEpKaHJzaExOZENkZ2haN2ZHV1E3T21nM29RLzY0MA)  "{methods}"“GET"其中 m e t h o d s 表 示 引 用 c s v 中 的 m e t h o d s 中 的 值 。     参 数 :     I n t e r p r e t C o n d i t i o n a s V a r i a b l e E x p r e s s i o n ? : 如 果 这 个 选 项 被 选 中 , 将 不 会 使 用 j s 解 析 ; 条 件 表 达 式 的 值 必 须 是 t r u e ( 忽 略 大 小 写 ) , 这 里 我 们 取 消 勾 选 状 态 。     E v a l u a t e f o r a l l c h i l d r e n : 如 果 选 中 这 一 项 , 在 每 个 子 结 点 执 行 前 都 会 计 算 表 达 式     P O S T 条 件 语 句 设 置 为 : " {methods}表示引用 csv 中的 methods 中的值。   参数:   Interpret Condition as Variable Expression?:如果这个选项被选中,将不会使用 js 解析;条件表达式的值必须是 true(忽略大小写),这里我们取消勾选状态。   Evaluate for all children:如果选中这一项,在每个子结点执行前都会计算表达式   POST 条件语句设置为:" methodscsvmethods    InterpretConditionasVariableExpression?使js;true()  Evaluateforallchildren  POST"{methods}”“POST”
在这里插入图片描述
  6.创建 GET 请求类型的用例如下
在这里插入图片描述
  用例名称格式:${caseSeq}_ KaTeX parse error: Expected group after '_' at position 9: {apiSeq}_̲{apiName}
  断言设置如下:${expectValue}引用 csv 中对应的值。
在这里插入图片描述
  最后添加查看结果树,然后运行可以看到如下运行结果:
在这里插入图片描述
  7.POST 用例设置和 GET 类似,不过参数请求不一样,是在 body 中,如果发送的是json格式的参数,需要添加http信息头管理器。另外请求方式为:POST
在这里插入图片描述
在这里插入图片描述
  运行结果如下:
在这里插入图片描述
  8.最后在线程组添加一个查看结果树,执行可以查看全部用例执行情况。
在这里插入图片描述
转https://mp.weixin.qq.com/s?__biz=MjM5NTU0MDg0MA==&mid=2651241352&idx=2&sn=df93ad73d8922fdc5ba3b59eb6cf02b0&chksm=bd04e18f8a736899b9ca098d666cb4f694f9774d199314b4a84996ebf15bb72ef50abc3d3ab8&scene=21#wechat_redirect

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值