利用JMeter进行Web测试

JMeter介绍

JMeter, 一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具。JMeter可以用于测试静态或者动态资源的性能 (文件、Servlets、Perl脚本、Java对象、数据库和查询、ftp服务器或者其他资源)。原先Jmemer是为Web/HTTP测试而设计 的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库 中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换 的界面用来定制数据显示,测试同步及测试的创建和执行。
  Jmeter的下载地址:http://jakarta.apache.org/jmeter/usermanual/index.html
  JMeter 的特性:
  a) 能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
  b) 完全的可移植性和100% 纯Java。
  c) 完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
  d) 完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
  e) 精心的GUI设计允许快速操作和更精确的计时。
  f) 缓存和离线分析/回放测试结果。
  g) 高可扩展性:
  h) 可链接的取样器允许无限制的测试能力。
  i) 各种负载统计表和可链接的计时器可供选择。
  j) 数据分析和可视化插件提供了很好的可扩展性以及 以及个性化。
  k) 具有提供动态输入到测试的功能(包括Javascrīpt)。
  l) 支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)。

Fttp 请求(非录制)

首先建立一个线程组(Thread Group),为什么所有的请求都要加入线程组这个组件呢?不加不行吗?答案当然是不行的。因为jmeter的所有任务都必须由线程处理,所有任务都必须在线程组下面创建。

clip_image002

选中线程组(Thread Group),鼠标右键添加HTTP Request。这里不需要cookie管理器(HTTP Cookie Manager),因为这是我们手动添加的请求,不是录制的,但要求不是严格,cookie管理器可加也可不加。

我这里有2个请求

[全国]0727测试BD信息快递产品01变更03

http://p.ftuan.com/mall_quanguo_14448.shtml?s=1000&a=00011033008051010100000000010103

[海淀学院路]0727测试BD信息F券产品02

http://p.ftuan.com/xiuxian_haidian_14447.shtml?s=1000&a=00010244004076010100000000110103

先添加第一个请求,第二个请求我使用参数化URL的方法来进行(试试在path中参数化能不能成功,分析了上面2个请求,域名都是相同的,唯独不同的只有后面的URL)

clip_image004

clip_image005

然后添加聚合报告(Aggregate Report)和查看结果树(View Results Tree)

完整的脚本结构:

clip_image006很简洁吧

保存脚本,然后运行一下,看看我们发过去的请求是否可以得到服务器相应的返回数据。

第一个请求的URL:

clip_image008

发送URL请求后的返回:

clip_image010

一切返回正确。

下面来参数化另外一个页面的URL请求:

把域名后面的URL放到一个记事本中,另存为URL.txt,存放在D盘根目录

clip_image012

选中线程组,在其下面添加配置元件CSV Data Set Config

参数化的方法在另外一个文档中。

clip_image013

然后根据CSV Data Set Config中的变量名称,找到HTTP请求中的path数据

clip_image014

修改线程组运行次数,确保这2个URL都要被线程执行到

clip_image015

clip_image016运行脚本前,先把前一次运行的结果清空一下

开始运行脚本

clip_image018

clip_image020

这两个URL都被执行到了,并且结果返回正确,测试可知在http请求的path路径上做参数化是可行的。

再看一下脚本的结构树:且要记住一点,所有任务都是由线程来执行的,所以所有任务都要分在线程下面,一个脚本个建立多个线程组。

clip_image021



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值