JMeter 接口自动化(if 控制器)

接着上一篇继续来对脚本进行优化,不了解上一篇内容的可以回头先看看(https://www.jianshu.com/p/f9270a57d27c)。

上一篇的脚本中使用的城市数据都是可以查到天气信息的,这一篇我们增加发送不存在的城市数据。

首先来看一下发送不存在城市数据的 API 文档信息:

{
"status":"The location can not be found.",
"status_code":"AP010010"
}

接下来在 CSV 文件中添加一些非法的城市名称、返回状态 status,返回状态码 status_code。

JMeter 接口自动化(if 控制器)_第1张图片

修改了数据后,请求和断言要如何修改呢?

再来回顾一下前面的请求脚本:

JMeter 接口自动化(if 控制器)_第2张图片

请求中的参数无论是查询有效城市天气信息还是无效城市天气信息其实都是需要填写的,所以请求脚本可以不作修改。

接下来看看断言部分。查询有效城市天气信息会断言城市名称 name 和城市 id,假如查询非法城市天气信息时执行这两个断言那肯定会报错,所以查询非法城市天气信息的断言需要另外编写。

查询非法城市天气信息后,我们对响应的状态 status 和状态码 status_code 这两项进行断言,下面添加两个断言到脚本中。

断言状态 status 。

JMeter 接口自动化(if 控制器)_第3张图片

断言状态码 status_code 。

JMeter 接口自动化(if 控制器)_第4张图片

添加了上面的断言后直接去运行脚本肯定也会报错,因为无论是查询有效城市天气信息还是无效城市天气信息时都会执行全部的断言。我们想要的运行方式是:查询有效城市天气信息时执行城市名称 name 和城市 id 的断言,查询无效城市天气信息时执行状态 status 和状态码 status_code 的断言。这样脚本又应该如何修改呢?

分开不同的情况去执行断言的话,我们可以在 CSV 文件中添加标识来区分不同类型的数据,比如可以添加一列 type内容 。

JMeter 接口自动化(if 控制器)_第5张图片

接着在原来的脚本中添加两个如果(If)控制器 放到获取实时天气请求下,然后在 if 控制器中添加判断条件。

判断有效城市。

JMeter 接口自动化(if 控制器)_第6张图片

判断无效城市。

JMeter 接口自动化(if 控制器)_第7张图片

添加 if 控制器后,我们把循环控制器的循环次数改成6,因为 CSV 文件中有6行可用数据。

JMeter 接口自动化(if 控制器)_第8张图片

在这里,大家想一个问题,如果以后 CSV 文件的数据增加或者减少了,难道每次都要去数一遍行数然后来修改循环控制器的循环次数吗?

当然不是。大家可以去看笔者另外一篇关于处理这个问题的文章(https://www.jianshu.com/p/7231e902c775),这里就不再重复写一遍了。

既然提到这个用法,那这里就直接用吧。

JMeter 接口自动化(if 控制器)_第9张图片
JMeter 接口自动化(if 控制器)_第10张图片

好,到这里为止,全部脚本都修改完成了,下面运行一次脚本。

JMeter 接口自动化(if 控制器)_第11张图片

从上面的断言结果可以看到6个断言都通过了。

以上就是 if 控制器运用到接口自动化测试中的一个小实例,希望对大家有帮助。

你可能感兴趣的:(JMeter 接口自动化(if 控制器))