• 第四篇:添加一个线程组


    1.测试需求:建立20个用户,访问www.baidu.com,查看在负载达到 30QPS的时候的一个平均的响应时间;

    QPS:query per second每秒查询率,是查询服务器每秒能处理的查询次数,在因特网上,作为域名系统服务器的性能常用每秒查询率来衡量;

    2.测试步骤:

    线程数:虚拟用户数,一个虚拟用户占用一个进程和线程,设置多少虚拟用户数在这里也就是设置多少线程数;

    准备时长:单位s:设置虚拟用户需要多少时间全部启动,例如:设置20个,准备时长是10,那么需要10秒钟启动20个线程,也就是每秒钟2个;

    循环次数:每个线程发送请求的次数,如果线程数目为20个,循环次数为5,那么每个线程发送5个请求,总请求为20*5,如果勾选了“永远”那么所有的线程会一直发送请求,直到选择停止运行脚本;

    3.HTTP请求的配置:

    名称:用于标识一个取样器,建议使用有意义的名称;

    注释:对于测试没啥用,仅用来备注;

    服务器IP:HTTP请求发送的目标服务器或者IP地址;

    端口号:目标服务器的端口号,默认是:80

    timeouts:设置请求和响应时间的超时时间;

    协议:HTTP或者HTTPS

    方法:发送HTTP的方法:get post ,head put options trace delete等等

    content encoding:内容的编码方式,默认是:ISO8859

    路劲:目标URL,注意不包括服务器的地址和端口

    自动重定向:如果选中该项,当发送的HTTP请求是302/301的时候,jmeter自动重定向到新的页面;

    use keep alive:jmeter和目标服务器之间使用keep-alive方式(又称持久链接,链接重用)进行HTTP通信,默认是选中的

    use multipart /from -data for HTTP POST :当发送HTTP请求的时候,使用use multipart /from -data 方法发送,默认不选中;

    通请求一起发送参数:

    可以在发送的请求的时候把参数一起发送;

    通请求一起发送文件:在请求发送文件,通常HTTP文件上传行为可以通过这种方式模拟

    从HTML获取资源:默认不勾选,如果勾选,jmeter在发出请求后,得到响应后,会对HTML的文件进行分析并获取HTML的内容,包括图片,flash等等;

    用作监视器:此取样器被当做监视器,在监视结果中可以看到取样器的图形化统计信息,默认不选中;

    save response as md5 hash :选中该项,在执行时仅仅记录服务端返回的MD5的值,而不记录完整的响应数据,在需要进行数据量非常大的测试的时候,建议选中该项,以减少取样器记录响应数据的开销;

    tips:默认时间单位是毫秒,报告输出文件后缀。jtl

    3.设置QPS限制:

    jmeter提供了一个非常有用的定时器:Constant Throught Timer(常数吞吐量定时器),该定时器可以方便的控制给定的取样器发送请求的吞吐量;

    Constant Throughtput Timer :的主要的属性:

    Target throughtput(in samples per minute):目标吞吐量,这里是每分钟发送的请求数量,实际填的数量为:60*QPS 其次,Calculate Throughput based on :有5个选项,分别是:

    This thread only :控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的target Throught 乘以该线程的数量;

    all active threads :设置的target throughput 将分配在每个活跃的线程上,每个活跃的线程在上次运行结束后,等待合理的时间后再次运行,活跃线程,指的是同一个时刻,同时运行的线程;

    all active threads(shared):与all active threads 的选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃的线程上一次运行结束后,等待合理的时间后再次运行;

    all active threads in current threads group:设置的target throughput 将任务分配在当前线程租的每一个活跃的线程上,当测试计划中只有一个线程组时,该选项和all active threads的效果一样,

    all active threads in current threads group(shared)和all active threads in current threads group基本相同,唯一的区别是,每个活跃的线程都会在所有活跃线程的上一次运行结束后等待,合理时间后再次运行;

    第四步:添加监听器:

    脚本的主要部分设置完成后,需要通过某种方式获得性能测试中的测试结果,在本例中我们只关心,请求响应时间;

    Jmeter 中使用监听器元件,收集取样器记录的数据并以可视化的方式来呈现,Jmeter有各种不同监听类型,因为HTTP请求,我们可以在添加聚合报告,更为直观的查看测试结果。

    添加聚合报告:右键点击线程组,在弹的菜单(添加---监听---聚合报告)中选择聚合报告。

    添加查看结果树(添加---监听---查看结果树)

    5、运行脚本

    6、聚合报告分析

    label:每个jmeter 的element(例如:HTTP request)都有一个,Name属性,这里是显示的就是 Name 属性的值;

    samples:表示这次测试中一共发出了多少请求,如果模拟10个用户,每个用户迭代,10次,那么这里显示100

    Average:平均响应时间,---默认情况下是单位,request,的平均响应时间,当使用了Transaction Controller 时,也可以Transaction 为单位显示平均响应时间。

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

    90%Line:90%用户的响应时间

    MIn:最小的响应时间;

    Max:最大响应时间;

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

    Throughput:吞吐量,---默认情况下表示每秒完成的请求数,(request per second)当使用了,transaction controller时,也可以表示类似(loadrunner)的 Transaction per Second数;

    响应时间单位:毫秒,见脚本:

    7.Jmeter 断言(检查点):

    断言是在请求的返回层面增加一层判断机制。因为请求成功了,并不代表结果一定正确,因此需要检测机制提高测试准确性,下面介绍常用的jmeter三种断言;

    1.响应断言:

    2.Size Assertion(Size断言)

    3.Duration Assertion (持续时间断言)

    如果响应时间大于设置的响应时间,则断言失败,否则失败,否则成功!

    8.Jmeter参数化:

    1.用户参数:这里讲一下,CSV data setconfig

    3.随机参数化:

    9.JMETER的集合点:

    操作步骤----step--定时器---Synchronizing Timer

    注意:集合点需要放在集合的元件的前面;

    10.jmeter关联:

    1.正则表达式的提取器:

    添加---后置处理器---正则表达式提取器:

    正则表达式部分配置说明:

    1.引用名称:下一个请求要引用的参数名称,如填写activityID,则可用${activityID}引用它;

    2):正则表达式:

    ()括起来的部分就是要提取的

    .匹配任何字符串

    +:一次或者多次

    ?:在找到第一个匹配项后停止

    3)莫版:用$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是$2$3$3等等,表示解析到的第几个值给title,如:$1$2表示解析道德第1个值;

    4)匹配数字:0代表随机取值,1代表全部取值

    5)缺省值:如果参数没有取值得到值,那默认给一个值让他取

  • 相关阅读:
    POJ 1469 COURSES 二分图最大匹配
    POJ 1325 Machine Schedule 二分图最大匹配
    USACO Humble Numbers DP?
    SGU 194 Reactor Cooling 带容量上下限制的网络流
    POJ 3084 Panic Room 求最小割
    ZOJ 2587 Unique Attack 判断最小割是否唯一
    Poj 1815 Friendship 枚举+求最小割
    POJ 3308 Paratroopers 最小点权覆盖 求最小割
    1227. Rally Championship
    Etaoin Shrdlu
  • 原文地址:https://www.cnblogs.com/surewing/p/8988459.html
Copyright © 2020-2023  润新知