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:每秒从服务器端接受到的数据量

     

  • 相关阅读:
    【leetcode】1020. Partition Array Into Three Parts With Equal Sum
    【leetcode】572. Subtree of Another Tree
    【leetcode】123. Best Time to Buy and Sell Stock III
    【leetcode】309. Best Time to Buy and Sell Stock with Cooldown
    【leetcode】714. Best Time to Buy and Sell Stock with Transaction Fee
    【leetcode】467. Unique Substrings in Wraparound String
    【leetcode】823. Binary Trees With Factors
    【leetcode】143. Reorder List
    【leetcode】1014. Capacity To Ship Packages Within D Days
    【leetcode】1013. Pairs of Songs With Total Durations Divisible by 60
  • 原文地址:https://www.cnblogs.com/fengyiru6369/p/7550860.html
Copyright © 2011-2022 走看看