美文网首页
JMeter 实战一(如果你还不会,我愿意解答有关该文章的任何问

JMeter 实战一(如果你还不会,我愿意解答有关该文章的任何问

作者: 顾顾314 | 来源:发表于2018-08-16 11:29 被阅读56次

    今天开始使用一下JMeter。

    我们公司开发的 App 主要是控制各种智能家居设备,比如灯光面板。

    有这样一个需求,需要测试一个灯光面板反复的进行开关的操作,比如持续开关500次,结果会怎么样?

    在讲这个需求之前先介绍如何使用 Charles 抓包获取请求接口参数。这里我选择和大多数人一样使用登录功能作为示例。

    登录请求


    如何创建测试计划,添加线程组在我的其他文章已有详细介绍,在此不赘述。


    这里测试计划的名称定为“灯光面板开关测试”。
    线程组的名称定位“登录”。
    在线程组下添加一个取样器(sampler)HTTP 请求,取名为“登录请求”。

    测试计划这里不做任何配置,线程组使用默认配置(因为这里并不是压测登录接口,只是用来讲解如何抓包获取请求接口参数)。

    现在我们开始抓包获取接口参数了,请连接好 Charles,发送登录请求。

    Charles 抓包得到的登录请求如下:


    抓包登录请求

    点击【Content】标签查看该接口的详细参数:


    接口的请求体参数

    有了登录的请求接口就可以配置取样器 HTTP 请求了,如图分别将该接口的 host 和路径填写到 JMeter:


    登录接口 取样器配置

    POST 请求一般都会有请求头和请求体,这里的登录接口也不例外。抓包已经获取请求体信息,那么在 JMeter 的取样器中如何配置呢?直接将抓包获取的请求体复制粘贴就好了,如下图所示:


    配置请求体

    点击【Headers】标签查看请求头参数:


    登录接口的请求头参数

    接口有了,请求体配置好了,下面该配置请求头了,在线程组下添加“HTTP 信息头管理器”,抓包获取的请求头有些对于接口测试来说是非必要的,可以和开发确认哪些是必要接口,当然了也可以将抓到的请求头信息全部配置到 JMeter 中:


    HTTP 信息头管理器

    这样就配置完了,该发送请求了。添加一个监听器“查看结果树”。然后发送请求,结果如下:


    查看结果树

    如果请求出错,那么可以查看【请求】,如下:


    请求结果

    可以将这里数据和抓包得到的数据进行对比,看看是否一致。一般都会很容易找到问题,如果找不到,可以求助开发人员,他们对接口会很熟悉。

      

    控制灯光面板


    文章开头我们说了这是一个开关交替不断重复的动作。这时候 JMeter 的【交替控制器】就非常有用了;这里是开关两个请求,所以需要两个 【HTTP 请求】,一个是开灯,一个是关灯;因为是POST 请求,所以还要有【HTTP 信息头管理器】;通过抓包我得知开灯和关灯两个请求接口和参数有相同的部分(实际上开灯和关灯接口参数完全相同),所以我们还可以使用【HTTP 请求默认值】来减少相同参数的配置。如下图所示:

    线程组结构树

    开灯和关灯两个请求的接口和请求体(没有请求头)参数相同,所以我们配置到【HTTP 请求默认值】这个元素里:


    HTTP 请求默认值配置

    交替控制器不需要配置,因为开灯和关灯的请求完全相同,都配置到了【HTTP 请求默认值】里,所以这两个取样器也不做配置,但是必须要有这两个取样器,就让他们空着。

    最后,执行查看结果:


    查看结果树

      

    异常情况


    这里异常情况分两种:

    1、接口请求异常,报错
    2、接口请求正常,但是设备没有响应

    先说第一种,这种情况一般是 URL 有误,这里我将 URL(服务器名称和路径的组合)故意改错一点,再次发送请求:

    接口异常报错

    再说第二种,这是一个比较难以排查的问题。接口正常,但是参数错误,这里我故意改错一个参数:


    参数错误

    这里“取样器结果报200,那就说明接口正常,但是设备没有响应,原来服务器返回了结果是“参数错误”。

    补充说明

    在实际操作中,我遇到了另一个问题,接口正常,参数正确,但是设备就是没有响应。服务器返回的结果是“用户未登录”。原来是因为有一个参数值会随着用户每次重新登录而改变;并且每次发送接口时,App 必须处于登录状态。

    相关文章

      网友评论

          本文标题:JMeter 实战一(如果你还不会,我愿意解答有关该文章的任何问

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