• JMeter


      Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java小服务程序、CGI脚本、Java 对象、数据库, FTP服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

    1. 下载JMeter(略)

    2.启动JMeter

      这里就在win下进行,图形界面较为方便。在目录apache-jmeter-2.12in 下可以见到一个jmeter.bat文件,双击此文件,即看到JMeter控制面板。

    3.运行预准备

      现在来对iteye进行压力测试,压力测试对象为随机的几个网页链接,这几个链接是写在一个文本文件中的,在压力测试的时候会随机读取。链接文件名test.txt,内容如下(注意test.txt文件最好是UTF-8格式,每行地址之间不要有空行):

    news

    news/category/database

    magazines

    blogs/subjects/category/web

    4.开始测试

      4.1建立线程组,如下图:
     4.2设置请求服务器、压力链接地址等信息

    我们要测试的网站地址是什么?链接是什么?所以现在我们就来设置这些信息。右键点击我们刚创建的线程组,在弹出的菜单中,选择添加->Sampler->Http请求,弹出如下图界面:

    4.3“路径”介绍

    假如你只是对一个链接进行压力测试,直接填写一个链接就ok,比如http://www.iteye.com/,但是大多数情况下都不是这样的,我们这里需要多个链接,就如同刚开始讲到的那样,我们要将多个链接保存到一个文本文件中,然后随机读取进行压力测试。那么如何产生类似上面的路径地址呢?请看下图:

    在弹出的对话框中,将第3步骤中准备好的test.txt文件地址复制到如下图红框内,并点击“生成”按钮,将生成好的“路径”地址拷贝下。

    注意,每行前面并没有http://www.iteye.com这样的信息,因为我们在前面已经填写了服务器地址为www.iteye.com,这里就没必要再为每个url填写这个相同前缀了;另外,上面的url格式也只是个例子,表示域名后的部分。

    这样一来,当我们并非请求的时候,就会从test.txt中随机选择url来进行压力测试。

    另外值得注意的一个地方是,如果参数中有中文的情况,运行的时候可能会出现乱码,这个时候就需要注意你在Jmeter中的编码设置与你要请求的网页编码是一致的。

    路径文本框下面的选项,可以按默认的就成,Use multipart/form-data for HTTP POST是当请求中有附件的情况,一般情况下都不用选中的。

    5.运行

    在运行前,请把所有修改都保存好!!!

    各属性如下:

    • Sample:每个请求的序号
    • Start Time:每个请求开始时间
    • Thread Name:每个线程的名称
    • Label:Http请求名称
    • Sample Time:每个请求所花时间,单位毫秒
    • Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
    • Bytes:请求的字节数

    如果Status为叉,那很显然请求是失败了,但如果是勾,也并不能认为请求就一定完全成功了,因为还得看Bytes的字节数是否是所请求网页的正常大小值,如果不是则说明发生了丢包现象,也不是完全成功。

    在下面还有几个参数:

    • 样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数
    • 平均:每个线程请求的平均时间
    • 最新样本:表示服务器响应最后一个请求的时间
    • 偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布(这个我不是很理解)。

    术语:

    1. 线程组:测试里每个任务都要线程去处理,所有我们后来的任务必须在线程组下面创建。可以在“Test Plan(鼠标右击) -> 添加  ->Threads(Users) -> 线程组”来建立它,然后在线程组面板里有几个输入栏:线程数、Ramp-Up Period(in seconds)、循环次数,其中Ramp-Up Period(in seconds)表示在这时间内创建完所有的线程。如有8个线程,Ramp-Up = 200秒,那么线程的启动时间间隔为200/8=25秒,这样的好处是:一开始不会对服务器有太大的负载。
    2. 取样器(Sampler):可以认为所有的测试任务都由取样器承担,有很多种,如:HTTP请求。
    3. 断言:对取样器返回的请求结果给出判断是否正确。
    4. monitor:它的功能是对取样器的请求结果显示、统计一些数据(吞吐量、KB/S……)等

    备注:JMeter下载包中文档位置:apache-jmeter-2.12docsimagesscreenshots有详细的各种测试图解说明,可供参考

  • 相关阅读:
    何必言精通——十年杂感 兼谈其它 总结
    寻找自己的道路——与技术同胞共勉 一种划分为七个阶段的道路:自信=>意志=>布局=>切入点=>团队=>渠道=>产品
    务虚:大局观、方法与关键点 个人经历例子说明 一种工作应对解决的方法
    程序员“宅钱”的几种方式和我的体会 程序员其他赚钱的路径:私单、站长、开发共享软件
    怎么看待移动互联网时代 关于移动互联网时代的一点个人看法总结 在强烈的产业变化时期,主流观点是不靠谱的 什么是浪潮呢? 小型化、无线化、智能化。
    为什么现在很多年轻人愿意来北上广深打拼,即使过得异常艰苦,远离亲人,仍然义无反顾? 谈谈程序员返回家乡的创业问题 利基市场就是那些不大不小的缝隙中的市场 马斯洛的需求无层次不适合中国。国人的需求分三个层次——生存、稳定、装逼。对应的,国内的产品也分三个层次——便宜、好用、装B。人们愿意为这些掏钱
    SSM项目的数据库密码加密方案
    Python两个变量的值进行交换的方法
    Python编码问题
    Python2.7.14新手学习
  • 原文地址:https://www.cnblogs.com/shann/p/5457564.html
Copyright © 2020-2023  润新知