欢迎来到天天文库
浏览记录
ID:51308659
大小:2.98 MB
页数:47页
时间:2020-03-21
《jmeter性能测试及性能调优.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Contents目录一.性能测试实施流程介绍二.性能测试脚本介绍三.性能测试监控介绍四.性能测试分析介绍五.性能测试测试报告介绍Contents目录一.性能测试实施流程介绍1.了解什么是性能测试2.性能测试流程3.性能测试常见类型4.常用性能测试工具分类1.性能测试里论:性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。性能是衡量在一个环境下运行一个或多个应用程序的效率主要的指标一般是响应时间,tps,交易成功率2.性能测试流程:3.性能测试常见类型:4.常用性能测试工具分类
2、:.LoadrunnerLoadRunner是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周..JmeterJMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。这个工具相对于上面的LoadRunner来说,是比较轻量级的工具,便于安装且免费开源。不仅可以进行功能测试也可以进行性
3、能测试,一般可以用来做接口测试。这款工具学习起来也非常的容易,只要用这个工具做过几次测试,就可以非常熟悉的运用了。Contents目录二.性能测试脚本介绍1.事务2.参数化3.断言4.关联5.集合点6.思考时间1.事务:用户自定义的一个标识,用来衡量不同的操作所花费的时间,事务时间反映的是一个操作过程的响应时间。2.参数化:参数化作为测试脚本中最基本的使用技巧,需要每个从事性能测试的小伙伴都能熟练掌握。在测试工具中,每一个模拟用户都是一个线程,而在我们的仿真模型里,每一个用户都应该是一个真实的业务实体,每个用户代表的业务
4、含义、他可以去处理的业务以及在处理业务的过程中可以操作的数据都应该是不同的,这样才可以更真实的表达现实世界中系统使用的负载模型。为了达到这个目的,将测试工具的每一个线程和仿真模型中的每一个用户及操作对应起来,就需要使用到参数化的脚本处理。说的有些太严肃了,简单举个例子,比如我们要测试用户注册的功能,注册的用户名是不允许重复的。我们录制完的脚本都是hardcode,直接进行并发测试的话,无疑所有模拟用户的线程在注册的时候输入的都是相同的用户名和密码,这样肯定是会有很多错误请求无法达到服务端,也就不能产生我们预期的负载压力。
5、这时候,针对用户名就需要我们使用参数化的技巧来实现,每个注册的用户每次注册都使用不同的用户名来填写注册信息。3.断言:jmeter中有个元件叫做断言(Assertion),它的作用和loadrunner中的检查点类似;用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致。使用断言的目的:在request的返回层面增加一层判断机制;因为request成功了,并不代表结果一定正确。3.1.断言与beanshell组合使用.首先存储一个接口的响应结果.变量存储好后,再需要断言的接口后面添加Be
6、anShell断言,使用Failrue来标识断言失败,FailureMessage标示断言失败的原因,4.关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。5.集合点:集合点用以同步虚拟用户,以便恰好在同一时刻执行任务。在测试计划中,可能会要求系统能够承受1000人同时提交数据,在LoadRunner中可以通过在
7、提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner就会检查同时有多少用户运行到集合点,如果不到1000人,LoadRunner就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000人时,LoadRunner命令1000人同时去提交数据,从而达到测试计划中的需求。jmeter也是,Number ofSimulatedUserstoGroupby的意思是分批执行请求。当线程数到达设置的数量后,才开始发送请求。例如设置为5,如果启动的线程数到了4是不发送请求的,之后当再启动一
8、个线程,线程数为5的时候才开始发送请求。这样就相当于设置了集合点。只有达到我们想要的并发线程数的时候才开始并发。如果我们的并发线程数为10,那我们就可以设置线程组的线程数为10,加个SynchronizingTimer,设置为10就可以。Timout的意思是等待请求多久后,不管线程数有没有到达设置的并发数量都开始运行
此文档下载收益归作者所有