JMeter使用指南

Abstract

    本文重点介绍JMeter工具在测试中地位以及其中一些难以理解或者手册中含糊不清的感念,读者可以通过本文了解这些概念,然后再根据自己的需要查阅JMeter中各个组件的具体用法来完成测试工作。(本文由numberzero蔺皓原创,其中不免有一些错误,欢迎大家一起讨论一起进步,欢迎转载)

1. 简介

    JMeter是一个专门用于测试C/S应用的桌面测试软件(并不适合于B/S结构,因为它很难模拟用户在browser上的动作,如果需要测试B/S结构的应用,可以选择Selenium这样的工具),主要被用来完成功能测试、压力测试、性能测试等工作。
JMeter与其他测试软件相比的优势如下:

  • 它可以帮助测试者很方便地模拟出多用户同时访问服务器的环境(通过Thread Group),这样可以检测出很多平时在单线程环境下无法暴露出来的问题。
  • 应用范围很广,几乎所有你能想到的C/S应用它都能够提供了相应的支。JMeter中自己定制了一些特定应用的测试方案,例如对HTTP Server的测试、对数据库的测试、对Java程序的测试等。此外即使Jmeter没有提供当前应用的测试环境,用户也可以同昨BeanShell的方式自行定制。
  • 提供了丰富的逻辑控制器,可以允许测试人员很方便地写出一些相对复杂的测试逻辑。
  • 提供完善的变量机制以及配置机制,帮助测试人员减轻编写用例的负担,减少重复工作。
  • 提供了强大的监控组建,帮助测试人员很方便地得到测试结果统计信息。

    JMeter的略势:

  • 难以针对“正确性”进行测试。虽然JMeter提供了断言机制,但是通常我们的测试在模拟多用户操作,因此某个用户发出一个请求后得到的响应是不可预测的(例如同时对一个数据库表进行读写,虽然我们可以让每个模拟用户将写入的信息存储在某个公共区域,但仍然可能会有问题,因为数据库写入的时间和写入公共区域的时间并不能保证同步),因此如果想通过JMeter验证应用的正确性还是比较麻烦的。通常我们只是利用断言来检查一些较为简单而又重要的信息,例如返回码。
  • 没有很好的BeanShell测试机制。在JMeter中,BeanShell是非常重要的一部分,因为通常JMeter定制的测试方案多少与我们的应用有些出入,这时就需要使用BeanShell来完成一些JMeter无法完成的工作。然而BeanShell也是需要保证正确性的,而JMeter并没有对BeanShell的测试提供很好的支持。

    通过以上的分析,可以发现JMeter更适合找出被测试系统在并发环境下存在的问题。

2. JMeter测试用例的基本结构

    JMeter测试用例的基本结构是一个类似于Windows资源管理器的树形结构,这个树中的每一个节点都由一个元素来表示,因此一个完整的JMeter测试用例实际上是由一个个元素组成的,而测试的执行过程实际上就是这些元素的执行过程。一般而言,JMeter会使用深度优先的方式遍历这些元素,而对于同一层的元素,JMeter会自上至下地执行。

在JMeter中有很多种元素,而每种元素在树型结构中都有特定的意义,为了方便理解,这里把这些元素从结构性质上分为三大类:

    第一类是控制型元素,这类元素通常出现在树型结构的枝节点,它们被用来控制其下第一层元素(注意,不是其下所有元素)的执行,例如控制他们的先后顺序,或者执行哪个或者不执行哪个。通过这类元素我们就可以很方便地动态控制测试用例的执行过程,这些元素就类似于变成语言中的if-else、switch、while等逻辑控制语句。

    第二类是动作型元素,这类元素是真正发起测试请求的元素,它们通常位于树型结构的底层,每一个动作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值