zoukankan      html  css  js  c++  java
  • Jmeter进行接口的性能测试

    一、录制Jmeter脚本

    录制Jmeter脚本有两种方法,一种是设置代理;一种则是利用badboy软件,badboy软件支持导出jmx脚本。

    这里我们介绍第二种方法,利用badboy录制脚本,然后导出Jmeter需要的jmx文件。

    首先,在地址栏中输入要录制脚本的地址,然后点击绿色按钮即可开始录制(工具栏中的红色按钮也可以点击进行录制),点击红色圆形按钮旁边的正方形黑色按钮结束脚本录制(如果使用过loadrunner,那么步骤是一样的),在内嵌的浏览器上面操作你需要测试的动作即可,它会自己记录你的相关行为动作。

    然后点击黑色按钮录制完成之后,我们可以导出jmx文件:

    保存为“登录开发者.jmx”

    二、使用Jmeter开始测试

    1、打开脚本

    用Jmeter打开我们上面保存的文件。

    打开之后如图所示:

    2、修改脚本

    a、线程组

    在测试计划里面选择添加既可以看到线程组。

    如上图:

    名称:可以随意取,我们保持创建是自动分配的名称

    注释:随意

    在取样器错误后要执行的动作:我们选择继续,错误之后依然继续执行

    线程数:一般我们用来表示多少个用户,即我们测试时的用户数量

    Ramp-up Period(in Seconds):表示每个用户启动的延迟时间,上述我设为1秒,表示系统将在1秒结束前启动我设置的1000个用户,如果设置为1000秒,那么系统将会在1000秒结束前启动这1000个用户,开始用户的延迟为1秒, 如果我设置为0秒,则表示立即启动所有用户。

    循环次数:如果你要限定循环次数为10次的话,可以取消永远的那个勾,然后在后面的文本框里面填写10;在这里我们勾上永远,表示如果不停止或者限定时间将会一直执行下去, 是为了方便调度器的调用。

    调度器的配置:我们勾选调度器时,将会出现这个面板

    启动时间:表示我们脚本开始启动的时间,当你不想立即启动脚本测试,但是启动脚本的时间不会再电脑旁的时候,你可以设定一个启动的时间,然后再运行那里点击启动,系统将不会立即运行,而是会等到你填写的时间才开始运行。

    结束时间:与启动时间对应,表示脚本结束运行的时间。

    持续时间:表示脚本持续运行的时间,以秒为单位,比如如果你要让用户持续不断登录1个小时,你可以在文本框中填写3600。如果在1小时以内,结束时间已经到达,它将会覆盖结束时间,继续执行。 

    启动延迟:表示脚本延迟启动的时间,在点击启动后,如果启动时间已经到达,但是还没有到启动延迟的时间,那么,启动延迟将会覆盖启动时间,等到启动延迟的时间到达后,再运行系统。 

    注意:如果我们需要用到调度器来设定持续时间,如果线程数不够多到持续时间结束,我们就必须将循环次数勾选为永远,特别地,如果线程组里面有其他的循环,我们也需将该循环次数勾选为永远(如我上面录制的脚本中的Step1也是一个循环,需要将永远勾选),否则,按我如上配置,将永远去掉勾选,文本里填1,那么无论你将持续时间启动时间结束时间等设置多少,系统运行1000次后,将会停止不再运行。

    b、关于HTTP请求

    关于HTTP请求,我们录制的脚本里面就有,这里就介绍一些常用的属性。

    点击HTTP请求,将会出现如下界面:

    其中:

    名称:可以随意取,我们可以根据录制脚本的路径来命名

    注释:可以对该界面做一个简单介绍

    服务器名称或IP:即我们的服务器或者IP的地址,我因为是在本机上的项目,故填写localhost,可以填写127.0.0.1。

    端口号:我用的是tomcat,自己设置的端口号为8086(tomcat默认为8080)

    后面的超时定义可以不用填写。

    Implementation:这里我们录制时默认填写为JAVA

    协议填写为:http

    方法为:GET

    Content encoding:编码可以不用填写

    路径:即页面的路径;下面的重定向等选择可以根据需要勾选,这里我们保持录制不修改。

    Parameters参数:即跟着路径一起发送的参数及文件

    下面的代理服务器等可以忽略,按需要填写。

    c、参数化

    如下面图,我们为请求发送的参数来参数化。

    上述的例子为登录的用例,登录有两个参数:EMAIL和DEVELOPER_PASSWORD,在实际测试中,当我们需要用到不同的用户来登录的时候,我们就可以用到参数化。

    1)、我们新建一个文件,这里我新建的是一个txt文件,命名为c.txt,里面的内容为

    web@qq.com,111111

    col@qq.com,111111

    mon@qq.com,111111

    2)、在jmeter中的【选项】中选择【函数助手对话框】,将会弹出如下对话框:

    其中:

    CSV file to get values from | *alias:要读取的文件路径,为绝对路径 

    CSV文件列号| next| *alias:从第几列开始读取,注意第一列是0 

    如上图所示,我们读取的是c.txt里面的第一列用户名(如果要读取第二列的密码,只需将0改成1即可,往后类推),点击【生成】按钮即可生成函数,我们使用时即拷贝生成的函数字符串:${__CSVRead(E:c.txt,0)}。

    其他函数后面介绍。

    四、分析结果

    1、查看结果树

    如图所示:成功的为绿色,失败则显示为红色。如果测试的结果太多,你只需要看到错误的页面,则勾选【仅日志错误】

    2、聚合报告(Aggregate Report)

    其中:

    Label:标签,即我们上面的请求名称

    #Samples:本次场景中一共发出了多少个请求

    Average:平均响应时间

    Median:中位数,也就是50%的用户的响应时间

    90%Line:表示90%的用户的响应时间,如果最小值和最大值相差很大的话,我们一般选择这个作为最终测试结果

    Min:最小响应时间

    Max:最大响应时间

    Error%:出错率,本次测试中出现错误的请求的数量/请求的总数

    Throughput:吞吐量

    KB/sec:每秒从服务器端接受到的数据量

     

  • 相关阅读:
    【转载】C++汇编器、连接器
    【转载】vi的使用命令
    JDK,SDK,JRE概念
    iOS 使用xmpp做聊天客户端
    cocopods安装
    用XMPP实现完整Android聊天项目
    xmpp发送文件
    ember.js学习笔记
    html5 drag and drop
    jquery 数组深拷贝
  • 原文地址:https://www.cnblogs.com/fengyiru6369/p/7550860.html
Copyright © 2011-2022 走看看