性能测试—认识JMeter(三)
《零成本web性能测试》第二章 JMeter基础知识总结和自己的理解
一、JMeter百度词条概念
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象
二、JMeter特点和常用语
1、特点
a)支持对多种服务类型进行测试,包括web-http/https、SOAP、Database via JDBC、LDAP、JMS、Mail-POP3(S)and IMAP(S)
b)支持通过录制/回放方式获取测试脚本
c)具备高可移植性,是100%纯Java程序
d)采用多线程框架,允许通过多个线程并发取样及通过独立的线程组对不同的功能同时取样
e)精心设计的GUI支持高速用户操作和精确计时
f)支持缓存和离线的方式分析/回放测试结果
g)具备高扩展性
2、常用术语
a)采样器(Samplers):采样器是jmeter测试脚本的基础单元,用户可以用它来向服务器发出一个特定的请求,采样器会在超时前等待服务器的响应。
b)逻辑控制器(Logic Controllers):用户通过逻辑控制器来控制jmeter测试脚本的执行顺序,以便测试能够按照用户期望的顺序和逻辑执行
c)监听器(Listeners):监听器被用来手机测试结果信息,并以用户指定的方式加以展示。
d)配置元件(Configuration Elements):配置元件被用来设置一些jmeter测试脚本公用的信息。
e)断言(Assertions):断言被用来验证服务器实际返回信息与用户期望的情况是否相符。
f)定时器(Timers):定时器被用来保存jmeter测试脚本与时间相关的一些信息,例如思考时间(Think Time)。
g)前置处理器(Pre-Processors):在前置处理器的作用范围内,任何采样器被执行前,都要先执行前置处理器。
h)后置处理器(Post-Processors):在后置处理器的作用范围内,任何采样器被执行后,都要执行对应的后置处理器。
i)测试计划(Test Plan):测试计划是jmeter测试脚本的根节点,关于整个测试脚本的一些基础设置,可以在测试计划中设定,例如用户定义变量。
j)线程组(Thread Group):线程组定义了一个虚拟用户池,其中每一个虚拟用户都使用同样的测试脚本。
k)工作台(WorkBench):工作台被用来保存暂时不使用的测试元素,当测试人员保存测试计划时,工作台中的内容不会被一起保存。
3、测试结果字段
a)Label: 定义的HTTP请求名称
b)Samples: 表示这次测试中一共发出了多少个请求
c)Average: 访问页面的平均响应时间
d)Median:中位数,50%用户的响应时长
e)90%Line:90%用户的响应时长
f)Min: 访问页面的最小响应时间
g)Max: 访问页面的最大响应时间
h)Error%: 错误的请求的数量/请求的总数
i)Throughput:每秒完成的请求数
j)KB/Sec: 每秒从服务器端接收到的数据量
4、JMeter工作原理
jmeter可以作为web服务器与浏览器直接的代理网关,以便捕获浏览器的请求和web服务器的响应,如此就可以很容易地生成性能测试脚本。有了性能测试脚本,jmeter就可以通过线程来模拟真实用户对web服务器的访问压力。这与LoadRunner的工作原理基本一致
三、JMeter用户手册