美文网首页
Jmeter小试牛刀-响应断言与BeanShell断言

Jmeter小试牛刀-响应断言与BeanShell断言

作者: _帆帆历险记 | 来源:发表于2019-05-08 11:51 被阅读0次

    一、响应断言

    可根据要测试的响应字段和模式匹配规则来设置断言,判断接口返回值是否正确。

    1.运行一个登录的http请求,查看响应数据:

    2.添加响应断言

    勾选,输入相关信息  (测试字段与输入的参数要是对应的)

    一个断言:

    一个断言

    多个断言,但必须同时满足,才算断言成功:

    多个断言,但必须同时满足,才算断言成功

    勾选"或",多个断言,满足一个即成功:

    勾选"或",多个断言,满足一个即成功

    ① 测试字段:

    响应文本: 服务器响应文本,一般普通http响应,都勾选这个。

    响应代码:http响应代码,如101,200,302,404,501等。但当我们要验证404,501等http响应代码时,需要勾选“ ignore status”。因为当http 响应代码为400,500时,jmeter默认这个请求时失败的。

    响应信息:http响应代码对应的响应信息,例如:OK, Found   (断言时大小写敏感)

           HTTP/1.1 200 OK

           HTTP/1.1 302 Found 

    响应头:例如

                        Server: Tengine

                        Date: Thu, 12 Mar 2015 09:43:52 GMT

                        Content-Type: text/html

                        Content-Length: 260

                        Connection: close

                        Location: http://www.baidu.com/404.html

    文档(文本):一般普通http请求,不要选择这个。

    url样本:是对sample的url进行断言。如果请求没有重定向(302),那么就是这个就是请求url。 如果有重定向(且跟随重定向),那么url就包含请求url 和 重定向url

    ② 模式匹配规则:

    包括:返回结果包括你指定的内容,支持正则匹配

    例如:

      测试字段为: 响应文本

         模式匹配规则:包括

         断言为:1、invalid    2、[a-z]+

    当返回值为:{"msg":"channel invalid."} , 这两个断言都是ok的,返回true

    备注:[a-z] 表示匹配 26 个小写字母中的任意一个

               a+ 表示匹配一个或多个 a 字符

               所以[a-z]+表示一个或多个  26 个小写字母中的任意一个 ?

    匹配:

      (1) 相当于 equals 。当返回值固定时,可以用返回值做断言,效果和equals相同

      (2) 正则匹配 。 用正则表达式匹配返回结果,但必须全部匹配。 即正则表达式必须能匹配整个返回值,而不是返回值的一部分。

    相等 :返回结果与你指定断言完全一致

    SubString:与 “包括”差不多,都是指返回结果包括你指定的内容,但是subString不支持正则字符串

    :就相当于取反。 如果上面断言结果为true,勾选“否”后,最终断言结果为false。如果上面断言结果为false,勾选“否”后,则最终断言结果为 true。

    3.添加断言结果

    断言结果会记录 执行成功和执行失败的记录

    二. BeanShell断言

    BeanShell断言可以用于更复杂的个性化需求,使用更灵活,功能更强大

    一个简单示例:

    例中的代码就是判断响应代码是不是200,是200即断言成功;不是200则断言失败,输出报错信息

    不过呢。。这个代码对我来说有一点局限性,有些值还是不会取。。有没有更适合我的方法呢?

    有!

    根据这个教程Jmeter使用BeanShell 断言进行判断受到了启发

    教程内容截图:

    看!这个引用!我可以先用提取器提取要验证的内容,然后引用在代码里进行验证

    实际应用:

    登录成功时,error_code值为0,若登录失败值不为0

    用边界提取器提取error_code的值

    引用在代码里

    一个登录失败的情况:

    不过代码还是要学起来呀。。(哭)


    响应断言参考教程:

    Jmeter断言实例—响应断言

    jmeter初级-添加断言(接口测试)

    Jmeter 常用断言使用

    Jmeter笔记:响应断言详解(有测试字段的详细说明)

    JMeter 检查点之响应断言(Response Assertion)(也有测试字段的详细说明)

     BeanShell断言参考教程:

    https://blog.csdn.net/lijing742180/article/details/81157947

    https://blog.51cto.com/14010723/2298911(含BeanShell内置变量说明)

    相关文章

      网友评论

          本文标题:Jmeter小试牛刀-响应断言与BeanShell断言

          本文链接:https://www.haomeiwen.com/subject/vqeugqtx.html