- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Contents;Contents; 1.性能测试里论:性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
性能是衡量在一个环境下运行一个或多个应用程序的效率
主要的指标一般是响应时间,tps, 交易成功率
2.性能测试流程:
;3.性能测试常见类型: ; 4.常用性能测试工具分类:.Loadrunner LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周. .Jmeter JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。这个工具相对于上面的LoadRunner来说,是比较轻量级的工具,便于安装且免费开源。不仅可以进行功能测试也可以进行性能测试,一般可以用来做接口测试。这款工具学习起来也非常的容易,只要用这个工具做过几次测试,就可以非常熟悉的运用了。;Contents; 1.事务:用户自定义的一个标识,用来衡量不同的操作所花费的时间,事务时间反映的是一个操作过程的响应时间。
?
;
2.参数化:参数化作为测试脚本中最基本的使用技巧,需要每个从事性能测试的小伙伴都能熟练掌握。
在测试工具中,每一个模拟用户都是一个线程,而在我们的仿真模型里,每一个用户都应该是一个真实的业务实体,每个用户代表的业务含义、他可以去处理的业务以及在处理业务的过程中可以操作的数据都应该是不同的,这样才可以更真实的表达现实世界中系统使用的负载模型。为了达到这个目的,将测试工具的每一个线程和仿真模型中的每一个用户及操作对应起来,就需要使用到参数化的脚本处理。
说的有些太严肃了,简单举个例子,比如我们要测试用户注册的功能,注册的用户名是不允许重复的。我们录制完 的 脚本都是hard code,直接进行并发测试的话,无疑所有模拟用户的线程在注册的时候输入的都是相同的用户名和密码,这样肯定是会有很多错误请求无法达到服务端,也就不能产生我们预期的负载压力。这时候,针对用户名就需要我们使用参数化的技巧来实现,每个注册的用户每次注册都使用不同的用户名来填写注册信息。
; 3 .断言:
jmeter中有个元件叫做断言(Assertion),它的作用和loadrunner中的检查点类似;
用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致。
使用断言的目的:在request的返回层面增加一层判断机制;因为request成功了,并不代表结果一定正确。
3.1.断言与beanshell组合使用
. 首先存储一个接口的响应结果
. 变量存储好后,再需要断言的接口后面添加BeanShell断言,使用Failrue来标识断言失败,FailureMessage标示断言失败的原因,
?
; 4.关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,已变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。
; 5.集合点:集合点用以同步虚拟用户,以便恰好在同一时刻执行任务。在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,从而达到测试计划中的需求。
jmeter也是,Number ?of Simulated Users to Group by的意思是分批执行请求。当线程数到达设置的数量后,才开始发送请求。
例如设置为5,如果启动的线程数到了4是不发送请求的,之后当再启动一个线程,线程数为5的时候才开始发
文档评论(0)