IT修真院·小课堂丨互联网职业小课堂在线学习平台

课堂课题:

什么是压测,为什么要进行压力测试?JMETER工具的使用

关联任务:

任务五

直播时间:

2018-10-12 19:30:00


课堂内容:

视频链接:

PPT链接:

提交按钮:

小课堂内容格式


标题:

【修真院xx(职业)小课堂】课题名称

开场语:

大家好,我是IT修真院XX分院第X期的学员XX,一枚正直纯洁善良的XX程序员,今天给大家分享一下,修真院官网XX(职业)任务X,深度思考中的知识点——XXX

(1)背景介绍:

背景介绍的时候,尽可能的要宽广,讲清楚来龙去脉,讲清楚为什么会需要这个技术。

(2)知识剖析:

讲知识点的时候,尽可能的成体系,学会成体系的去给别人介绍知识。现在很多做的都是零散的,没有分类。

(3)常见问题:

最少列出1个常见问题。

(4)解决方案:

写清楚常见问题的解决方案。

(5)编码实战:

尽可能的去寻找在真实项目中在用的。如果你能找到某个网站在用你说的知识点,这是最好的。学以致用,否则当成练习题就没有意义了。多准备一些demo,讲解过程中将知识点和demo结合,便于大家理解所讲解的知识点。

(6)拓展思考:

知识点之外的拓展思考,由分享人进行讲解,这些东西就是所谓的深度,也是一个人技术水准高低比较的表现。

(7)参考文献:

引入参加文献的时候,在引用的句子后面加上序号【1】。参考文献中列出详细来源。不要去抄别人的东西,这是一个基本的态度。

(8)更多讨论:

Q1:提问人:问题?
A1:回答人(可以是分享人,也可以是其他学员):回答
Q2:提问人:问题?
A2:回答人(可以是分享人,也可以是其他学员):回答
Q3:提问人:问题?
A3:回答人(可以是分享人,也可以是其他学员):回答

(9)鸣谢:

感谢XX、XX师兄,此教程是在他们之前技术分享的基础上完善而成。

(10)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

什么是压测,为什么要进行压力测试?JMETER工具的使用     中品

辅导师兄 [郑州|结业弟子]UI-王贝贝


【修真院JAVA小课堂】什么是压测,为什么要进行压力测试?JMETER工具的使用


大家好,我是IT修真院郑州分院第11期的JAVA学员,一枚正直纯洁善良的java程序员。


今天给大家分享一下,什么是压测,为什么要进行压力测试?JMETER工具的使用。


1.背景介绍


压测,即压力测试,是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患。

一般针对网络游戏压力测试。对网络游戏的服务器不断施加“压力”的测试。通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。


JMeter是Apache组织开发的基于Java的压力测试工具。它可以用于测试静态和动态资源,可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

 


2.知识剖析


压测的类型


1.峰值测试:主要是考验一个服务器承载上限

2.同屏压测:即同一屏幕同时承载测试

3.行为压测:即根据用户行为消耗资源测试

4.数据压测:即数据上限测试

5.设备压测:不同的设备支持不同的运行环境   


Jmeter七种主要组件

1.逻辑控制器(LogicController):控制JMeter发送请求,LogicController主要是用来控制JMeter发送请求(也就是采样器)的处理顺序。

2.采样器(Sampler):发送一个具体的请求到指定服务器,Sampler也就是发送一个具体的请求到指定服务器,等待服务器的请求。也会根据LogicController来改变运行的次数和顺序。

3.配置元件(ConfigElement):只是配置一些默认的属性和信息,它不会向服务器发送任何的请求。

4.监听器(Listener):测试结果用数据进行处理并展示出来,Listener是把测试结果用数据进行处理并展示出来。查看结果树,用表格查看结果,图形结果,聚合报告等

5.断言(Assertions):用于检查测试中得到的数据和我们预期的结果是否相同

6.前置处理器(PerProcessors):在发出请求之前对请求进行特殊的处理

7.后置处理器(PostProcessors):对采样器发出请求后得到的服务器响应进行处理


JMeter-线程组


1.setup thread group 一种特殊类型的线程组,可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。

2.teardown thread group 一种特殊类型的线程组,可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组。

3.thread group(线程组) 我们通常添加运行的线程。通俗的说所有的任务都是基于线程组,开通多少个线程就代表有多少个并发用户。

 


3.常见问题


1)jmeter压力测试具体操作

 


4.编码实战


5.扩展思考


1.组件执行顺序

(1)配置元件(config elements )

(2)前置处理程序(Per-processors)

(3)定时器(timers )

(4)取样器(Sampler)

(5)后置处理程序(Post-processors) (除非Sampler 得到的返回结果为空)

(6)断言(Assertions)(除非Sampler 得到的返回结果为空)

(7)监听器(Listeners)(除非Sampler 得到的返回结果为空)


2.90%line响应时间为什么要稳定在500ms

   用户发起一个请求时最多的响应延时为0.5s,当超过0.5s时用户可以清晰的感受到页面的卡顿,理论上讲0.2s是最完美的响应延时,此时用户发起的请求就是秒开。


3.性能测试的目的

   性能测试的目的是验证软件系统能否达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈, 以优化软件,最后起到优化系统的目的。


  包括以下结构方面:

  评估系统的能力、识别系统中的弱点、系统调优、测试软件中的问题、验证稳定性(Resilience)和可靠性(Reliability)。

         


6.参考文献


http://www.kokojia.com/article/20582.html


https://www.cnblogs.com/guoyuanping/p/8284346.html


7.更多讨论


1)JMeter的工作原理是什么?


向服务器提交请求;从服务器取回请求返回的结果。


2)为何测试对象是http和https混杂出现?


Https是加密协议,为了安全,一般不推荐使用http,但是有些地方,使用https过于复杂或者较难实现,会采用http协议。


3)为什么脚本刚开始运行就有错误,其后来的脚本还可运行?


在Thread Group中有相关设置,如果选择了continue,即使前面的脚本出现错误,整个thread仍会运行直到结束。选择Stop Thread会结束当前thread;选择Stop Test则会结束全部的thread。推荐选项是Stop Thread。


4)系统性能好的表现


①随着用户数的增长,事务响应时间增长缓慢。


②随着用户数的增加,服务器每秒请求数也在增加。


③服务器接受到的数据流量随着用户数的增加而上升。



评论

[真传弟子]JAVA-张帆 发表于 2018-10-16 15:51:19 #1

压力测试做的越多才越得心应手,这个要大量的数据喂出来,不必要一开始记那么多.知道这个是干嘛的就可以了.主要弄清楚测试为了做什么,测试那些接口,以及标准.

回复

请您登录 后进行评论