在众多类型的软件测试中,压力测试正是以软件响应速度为测试目标,尤其是针对在较短时间内大量并发用户的访问时,软件的抗压能力。本文以 JMeter 为例,介绍了如何使用它来完成常用的压力测试:Web 测试、数据库测试和 JMS 测试。
对于大多数的项目来说,并不会自行开发一个Web服务器,因此Web服务器压力测试的对象实际就是--发布到Web服务器中的软件。最简单的Web测试计划只需要三个 JMeter 的测试元件
1、在线程组中定义线程数、产生线程发生的时间和测试循环次数。
2、在http请求中定义服务器、端口、协议和方法、请求路径等。
表格监.听器负责收集和显示结果。
3、种设置对于包含了安全机制的 web 应用是不够的,典型的 web 应用一般都会:
1. 有一个登录页,它是整个应用的入口。当用户登录之后,应用会将用户相关的安全信息放到 session 中。
2. 有一个 filter,它拦截请求,检查每个请求相关的 session 中是否包含有用户安全信息。如果没有,那么请求被重定向到登录页,要求用户提供安全信息。
在这种配置下应用上面的测试计划,那么除了登录页之外的其它请求都将因为缺少用户安全信息,而使请求实际定位到登录页。如果不加断言,那么在监.听器看来所有的请求都是成功。而实际上,这些请求最终都没有到达它们应该去的地方。显然,这种测试结果不是我们所期望的。
为了成功的测试,至少有2种方法:
方法一,去掉程序的安全设置,如filter,使得不需要用户安全信息也能访问受限内容;
方法二,不修改程序,使用JMeter提供的"Http URL重写修饰符"或"Http Cookie管理器"。
对于第一种方法,有其局限性:
方法三,需要修改程序配置,如去掉web.xml中关于安全filter的设置。需要维护多个版本的web.xml,如压力测试和功能测试分别各自的web.xml,增加了维护成本,而且有可能会在测试之后忘记将web.xml修改回来。
对于一些需要用户安全信息的页面无能为力,如某些业务审计操作需要用户安全信息来记录。因为缺少这样的信息,注定了测试的失败。如果解决为了这个问题进一步的修改程序,那么因为存在多个版本的程序,那么其维护难度将大大增加。
虽然,第二种方法配置难度增加了,但是它不用修改程序。而且还可将测试计划保存成文件,以便重复使用。因此,选用第二种方法是较为理想的做法。下面以一个简化的例子说明使用方法二的配置步骤。
本文来源TA的公开社群:软件测试
一、一览社区上的内容完全来自于用户上传,一览并不对其进行编辑和修改。 在一览社区发表内容的用户不能侵犯包括他人的著作权在内的知识产权以及其他权利。一旦由于用户的相关文档发生知识产权问题,其责任在于用户本人。
1) 未得到著作者的同意对他人的著作物进行全部或部分的复制,传播,拷贝,有可能侵害到他人的著作权时,不要把相关内容复制刊登到一览社区上来。
2) 一览社区的用户可以对著作物进行报道,批评,教育,研究,在正当的范围内可以对其引用,但是一定要标明其出处,并在引用的时候不允许侵犯著者的人格。
二、一览社区用户上传的内容侵犯了第三方的著作权或其他权利,当第三方提出异议的时候,一览社区有权删除相关的内容,提出异议者和文档发表者之间结束解决了诉讼,协议等相关法律问题后,以此为依据,一览社区在得到有关申请后可以恢复被删除的内容。
三、当著作权人和/或依法可以行使著作权的权利人(权利人)发现一览社区的附件内容侵犯其著作权时,权利人应事先向一览社区发出“权利通知”,一览社区将根据中国法律法规和政府规范性文件采取措施移除相关内容或屏蔽相关链接。