Jmeter如何测试web和数据库

 

JMeter 最早是为了测试 Tomcat 的前身 JServ 的执行效率而诞生的。它的测试能力不仅仅包括对于Web服务器的测试,而是涵盖了数据库、JMS、Web Service、LDAP等多种对象的测试能力。今天就来说说Jmeter如何来完成WEB 和数据库的测试:

 

 

Web 服务器

对于大多数的项目来说,并不会自行开发一个Web服务器,因此Web服务器压力测试的对象实际就是--发布到Web服务器中的软件。最简单的Web测试计划只需要三个 JMeter 的测试元

 

 

 

其中:

 在线程组中定义线程数、产生线程发生的时间和测试循环次数。

 在http请求中定义服务器、端口、协议和方法、请求路径等。

 表格监听器负责收集和显示结果。

 

这种设置对于包含了安全机制的 web 应用是不够的,典型的 web 应用一般都会:

1. 有一个登录页,它是整个应用的入口。当用户登录之后,应用会将用户相关的       安全信息放到 session 中。

2. 有一个 filter,它拦截请求,检查每个请求相关的 session 中是否包含有用户安     全信息。如果没有,那么请求被重定向到登录页,要求用户提供安全信息

 

在这种配置下应用上面的测试计划,那么除了登录页之外的其它请求都将因为缺少用户安全信息,而使请求实际定位到登录页。如果不加断言,那么在监听器看来所有的请求都是成功。而实际上,这些请求最终都没有到达它们应该去的地方。显然,这种测试结果不是我们所期望的。

 

 

 

 

为了成功的测试,至少有2种方法:

     去掉程序的安全设置,如filter,使得不需要用户安全信息也能访问受限内容;

    不修改程序,使用JMeter提供的"Http URL重写修饰符"或"Http Cookie管理器"。

对于第一种方法,有其局限性:

    需要修改程序配置,如去掉web.xml中关于安全filter的设置。需要维护多个版本的web.xml,如压力测试和功能测试分别各自的web.xml,增加了维护成本,而且有可能会在测试之后忘记将web.xml修改回来。

对于一些需要用户安全信息的页面无能为力,如某些业务审计操作需要用户安全信息来记录。因为缺少这样的信息,注定了测试的失败。如果解决为了这个问题进一步的修改程序,那么因为存在多个版本的程序,那么其维护难度将大大增加。

 

虽然,第二种方法配置难度增加了,但是它不用修改程序。而且还可将测试计划保存成文件,以便重复使用。因此,选用第二种方法是较为理想的做法。

 

数据库服务器

数据库服务器在大多数企业项目中是不可缺少的,对于它进行压力测试是为了找出:数据库对象是否可以有效地承受来自多个用户的访问。

 

 

 

 

这些对象主要是:索引、触发器、存储过程和锁。通过对于SQL语句和存储过程的测试,JMeter 可以间接的反应数据库对象是否需要优化。

JMeter 使用 JDBC 发送请求,完成对于数据库的测试。一个数据库测试计划,建立如下结构即可:

 

其中:

JDBC连接配置,负责配置数据库连接相关的信息。如:数据库url、数据库驱动类名、用户名和密码等等。在这些配置中,"绑定到池的变量名"(Variable Name Bound to Pool)是一个非常重要的属性,这个属性会在JDBC请求中被引用。通过它, JDBC请求和JDBC连接配置建立关联。(测试前,请将所需要的数据库驱动放到JMeter的classpath中)。

 JDBC请求,负责发送请求进行测试。

图形结果,收集显示测试结果。

 

好了,今天的分享就到这里了,大家有兴趣的话,可以加一下我们的技术交流群939885326,群里有软测自学资料还有公开课~

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值