• 【NO.9】jmeter


        使用Jmeter对一个接口地址或者一个页面地址执行N次请求,下面来说说怎么建立一个测试脚本(也称为”测试计划”)。

    1.    运行Jmeter.bat

        双击"Jmeter.bat"文件,稍等片刻后Jmeter会被启动,如下图所示:

    2.    建立线程组

        在节点"测试计划"下,建立1个被称作"线程组"的东西,如下图所示:

        这个"线程组"的作用是什么呢?

        它的作用就是控制线程的数量。

        单击"线程组"之后,就算建立完成了。效果如下图所示:

    3.    建立HTTP请求默认值

             在节点"线程组"下,建立1个被称作"HTTP请求默认值"的东西,如下图所示:

        单击"HTTP请求默认值"之后,就算建立完成了。效果如下图所示:

    4.    填写"HTTP请求默认值"的表单(以”豆瓣-电影”为例)

        "服务器名称或IP"写:movie.douban.com

        其它地方依照下图所示写,同时当然要符合项目需求,只是大部分的接口测试是这样的而已。

        这样写好后,就可以为接下来的工作减轻工作量

    5.    建立单个请求

        在节点"线程组"下,建立1个被称作"HTTP请求"的东西,如下图所示:

        我想建立2个"HTTP请求",这样才能体现出"HTTP请求默认值"的效果。

        单击"HTTP请求"之后,就算建立完成了。效果如下图所示:

        前面已经说过"我想建立2个'HTTP请求',这样才能体现出'HTTP请求默认值'的效果。",所以我建立了2个'HTTP请求'。

    6.    填写"HTTP请求"的表单(以”豆瓣-电影”为例)

        第1个HTTP请求的表单

        "路径"写:/subject/1835843/

        其它地方保持默认的值就可以了

        第2个HTTP请求的表单

        "路径"写:/subject_search?search_text=Night+at+the+Museum

        其它地方保持默认的值就可以了

        为什么不需要写表单的其它域值?

        因为在"HTTP请求默认值"已经写过了。

        为什么要在"HTTP请求默认值"提前写这一切?

        因为通常情况下,需求是对同一个网站的不同页面执行性能测试。那么其实通用的一些域值都是相同的,为了减轻工作量没必要每次都写,而是写在"HTTP请求默认值"这1个东西里面就可以了。

        为什么路径只写了一半?

        因为前一半"movie.douban.com"已经在"HTTP请求默认值"写过了。

    7.    建立1个监听器

        在节点"测试计划"下,建立1个被称作"查看结果树"的东西,如下图所示:

        当然了你也可以建立"图形结果"、"断言结果"、"聚合报告"、"用表格查看结果"等等其它形式的监听器。每个类型的监听器的作用都是收集性能测试结果,只是呈现结果的样式不同,这个要结合具体的业务来定,或要结合开发人员"希望观察到哪些数据"来定。

        单击"查看结果树"之后,就算建立完成了。效果如下图所示:

    8.    只保留1个HTTP请求

        因为,每1个性能测试脚本,只是针对1个接口(或1个页面)执行1次或N次请求。

        所以,需要在测试脚本执行之前,只保留待测接口(或页面)的这1个"HTTP请求"。

        那么,我们可以看到当前的这个测试计划内,包含了2个"HTTP请求"。

        于是,我们暂且"禁用"其中的1个就可以了。效果如下图所示:

        其中1个"HTTP请求"被"禁用"后的效果。如下图所示:

    9.    执行1次测试脚本

        切换到"线程组"

        可以看到默认的线程数是"1",循环次数是"1"

        Ramp-Up Period(in seconds)的意思是指"希望在几秒内启动所有的线程"

        执行脚本的操作:Ctrl+R

        在执行脚本前可先执行"清空测试结果"的操作:Ctrl+E

    10.    查看测试结果

        切换到"查看结果树"

        单击右侧列表内的这1个"HTTP请求"

        右侧可以分别查看"取样器结果"、"请求"、"响应数据"TAB下的数据

    11.    执行另1个HTTP请求

        方法同第8小节的内容。

        具体就是:

        步骤[1]      -        启用另1个HTTP请求

        步骤[2]      -        同时禁用其它的HTTP请求

    12.    20个线程数+循环2次的方法

        切换到"线程组"

        设置线程数写"20",循环次数写"2"

        由于线程数比较少,所以不需要考虑如何设置Ramp-Up Period(in seconds)。

    13.    20个线程+脚本运行60秒

        切换到"线程组"

        设置线程数写"20"

        循环次数写"永远"

        勾选"调度器"->持续时间(秒)写"60"

        由于线程数比较少,所以不需要考虑如何设置Ramp-Up Period(in seconds)。

    -end

  • 相关阅读:
    spring学习10-AOP
    spring学习9-代理模式
    spring学习6-bean的自动装配
    PyQT5使用心得
    Python 时间戳和日期相互转换
    requests模块的入门使用
    Celery异步任务
    MySQL和python交互
    MySQL高级
    MySQL中select的使用
  • 原文地址:https://www.cnblogs.com/musicmovie/p/4222245.html
Copyright © 2020-2023  润新知