【转】JMeter学习(二十七)Jmeter常见问题

收集工作中JMeter遇到的各种问题

1.  JMeter的工作原理是什么?

  向服务器提交请求;从服务器取回请求返回的结果。

2.  JMeter的作用?

  JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。

3.   怎样能看到jmeter提供的脚本范例?

  在\JMeter\jakarta-jmeter-2.0.3\xdocs\demos目录下。

4.   怎样设置并发用户数?

  选中可视化界面中左边树的Test Plan节点,单击右键,选择Add-> Thread Group,其中Number of Threads参数用来设置发送请求的用户数目。

5.  JMeter的运行指示?

  Jmeter在运行时,右上角有个单选框大小的小框框,运行是该框框为绿色,运行完毕后,该框框为白色。

6.  User Parameters的作用是什么?

  提高脚本可用性

7.   在result里会出现彩色字体的http response code,说明什么呢?

  Http response code是http返回值,彩色字体较引人注目,可以使用户迅速关注。象绿色的302就说明在这一步骤中,返回值取自本机的catch,而不是server

8.   怎样计算Ramp-up period时间?

  Ramp-up period是指每个请求发生的总时间间隔,单位是秒。如果Number of Threads设置为5,而Ramp-up period是10,那么每个请求之间的间隔就是10/5,也就是2秒。Ramp-up period设置为0,就是同时并发请求。

9.    Get和Post的区别?

  他们是http协议的2种不同实现方式。Get是指server从Request URL取得所需参数。从result中的request中可以看到,get可以看到参数,但是post是主动向server发送参数,所以一般看不到这些参数的。

10. 哪些原因可能导致error的产生?

  a.   Http错误,包括不响应,结果找不到,数据错误等等;

  b.   JMeter本身原因产生的错误。

11. 为什么Aggregate Report结果中的Total值不是真正的总和?

  JMeter给结果中total的定义是并不完全指总和,为了方便使用,它的值表现了所在列的代表值,比如min值,它的total就是所在列的最小值。下图就是total在各列所表示的意思。

12.  JMeter的Thread Number是提供多个不同用户并发的功能么?

  不是,Thread Number仅仅是指并发数,如果需要实现多个不同用户并发,我们应该采用其它方法,比如通过在jmeter外建立csv文件的方法来实现。

13. 同时并发请求时,若需要模拟不同的用户同时向不同的server并发请求,怎样实现呢?

  方法很灵活,我们可以将不同的server在thread里面预先写好。或者预先将固定的变量值写入csv文件,这样还可以方便修改。然后将文件添加到User Parameters。

14.   User Parameter中的DUMMY是什么意思?

  当其具体内容是${__CSVRead(${__property(user.dir)}${FILENAME},next())}时用来模拟读文件的下一行。

15.   当测试对象在多server间跳转时,应该怎样处理?

  程序运行时,有些http和隐函数会携带另外的server IP,我们可以从他们的返回值中获取。

16.   为何测试对象是http和https混杂出现?

  Https是加密协议,为了安全,一般不推荐使用http,但是有些地方,使用https过于复杂或者较难实现,会采用http协议。

17.   Http和https的默认端口是什么?

  Apache server (Http)的默认端口是80;

  SSL (Https)的默认端口是443。

18.   为何在run时,有些页面失败,但是最后不影响结果?

  原因较多,值得提及的一种是因为主流页面与它不存在依赖关系,所以即使这样的页面出错,也不会影响运行得到正常结果,但是这样会影响到测试的结果以及分析结果。

19. 为什么脚本刚开始运行就有错误,其后来的脚本还可运行?

  在Thread Group中有相关设置,如果选择了continue,即使前面的脚本出现错误,整个thread仍会运行直到结束。选择Stop Thread会结束当前thread;选择Stop Test则会结束全部的thread。推荐选项是Stop Thread。

20.     在Regular expression_r Extractor会看到Template的值是$1$,这个值是什么意思呢?

  $1$是指取第一个()里面的值。如果Regular expression_r的数值有多个,用这种方法可以避免不必要的麻烦。

21.    Regular expression_r中的(.*)是什么意思?

  那是一个正则表达式(regular expression_r)。’.’等同于sql语言中的’?’,表示可有可无。’*’表示0个或多个。’()’表示需要取值。(.*)表达任意长度的字符串。

22.   在读取Regular expression_r时要注意什么?

  一定要保证所取数值的绝对唯一性。

23.   怎样才能判断什么样的情况需要添加Regular expression_r Extractor?

  检查Http Request中的Send Parameters,如果有某个参数是其前一个page中所没有给出的,就要到原文件中查找,并添加Regular expression_r Extractor到其前一page的http request中。

24.   在自动获取的脚本中有时会出现空的http request,是什么意思呢?

  是因为在获取脚本时有些错误,是脚本工具原因。在run时这种错误不参与运行的。

25.   在运行结果中为何有rate为N/A的情况出现?

  可能因为JMeter自身问题造成,再次运行可以得到正确结果。

26.   常用http错误代码有哪些?

  400无法解析此请求。

  403禁止访问:访问被拒绝。

  404找不到文件或目录。

  405用于访问该页的HTTP动作未被许可。

  410文件已删除。

  500服务器内部错误。

  501标题值指定的配置没有执行。

  502 Web服务器作为网关或代理服务器时收到无效的响应。

27.    Http request中的Send Parameters是指什么?

  是指code中写定的值和自定义变量中得到的值,就是在运行页面时需要的参数。

28.    Parameters在页面中是不断传递的么?

  是的。参数再产生后会在页面中一直传递到所需页面。所以我们可以在动态参数产生时捕获它,也可以在所需页面的上一页面捕获。(但是这样可能有错误,最好在产生页面获取)

29.   在使用JMeter测试时,是完全模拟用户操作么?造成的结果也和用户操作完全相同么?

  是的。JMeter完全模拟用户操作,所以操作记录会全部写入DB.在运行失败时,可能会产生错误数据,这就取决于脚本检查是否严谨,否则错误数据也会进入DB,给程序运行带来很多麻烦。

时间: 2024-10-25 19:54:47

【转】JMeter学习(二十七)Jmeter常见问题的相关文章

jmeter学习-性能指标、jmeter初识

一:性能测试的指标 1. 并发/并发数/并发用户数 狭义的并发:同一时间做相同的一件事 广义的并发:同一时间做不同事情,混合场景,对服务器来说的并发 性能测试,先做简单的狭义并发,在做广义并发:先做单接口的性能测试,再做业务性能测试,最后混合多业务场景的性能测试 并发数:单位时间内向服务器发起请求的用户数 //并发用户数:用于模拟真实用户向服务器发起请求的性能测试虚拟用户数 //系统用户数:只要访问过系统的用户,可能包含那些一次性访问.游客状态的用户 //在线用户数:当前正在访问系统的用户,不一

JMeter学习笔记——认识JMeter(1)

拿到一个自动化测试工具,我们第一步就应该了解它能提供我们哪方面的功能(最直接的方法就是从官网获取),接下来就是简单的对这个工具进行“功能测试”了,当然这里的功能测试不是让你找它存在的bug,而是让自己对它有一个直观的认识,后面的功能测试也是为前面的认识做铺垫的,那我们就依赖这个原则来认识下JMeter. JMeter是干嘛的(主要是官网翻译——> http://jmeter.apach.org) JMeter是一个纯粹的Java编写的应用程序,它主要是用来进行负载和性能测试.设计JMeter最初

JMeter学习(十七)JMeter测试Java

目的:对Java程序进行测试: 一.核心步骤1.创建一个Java工程:2.将JMeter的lib目录下的jar文件添加进此工程的Build Path:3.创建一个类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写: public Arguments getDefaultParameters();设置可用参数及的默认值: public void setupTest(JavaSamplerContext arg0):每个线程测试前执行一次,

【转】JMeter学习(十七)JMeter测试Java

目的:对Java程序进行测试 目录 一.核心步骤 二.实例 三.JMeter JavaSampler介绍 四.自带javaRequest Sampler 一.核心步骤 1.创建一个Java工程: 2.将JMeter的lib目录下的jar文件添加进此工程的Build Path: 3.创建一个类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写: public Arguments getDefaultParameters();设置可用参数及的

JavaWeb学习 (二十七)————监听器(Listener)在开发中的应用

监听器在JavaWeb开发中用得比较多,下面说一下监听器(Listener)在开发中的常见应用 一.统计当前在线人数 在JavaWeb应用开发中,有时候我们需要统计当前在线的用户数,此时就可以使用监听器技术来实现这个功能了. 1 package me.gacl.web.listener; 2 3 import javax.servlet.ServletContext; 4 import javax.servlet.http.HttpSessionEvent; 5 import javax.ser

学习二十七

七周一次课(7月10日)10.1 使用w查看系统负载10.2 vmstat命令10.3 top命令10.4 sar命令10.5 nload命令使用w查看系统负载w命令load average: 0.00, 0.01, 0.05这里表示系统负载,单位时间段内 一分钟之内 十分钟之内 十五分钟之内最能体现当前系统的负载的是一分钟之内查看物理的cpu个数vmstat命令vmstat 1 一秒种显示一行动态信息vmstat 1 5 一秒钟显示一行 五行结束r 表示多少个进程在运行,cpu排队的进程 ru

JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取

前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). 此文主要对正则表达式提取器的 正则表达式.模板.匹配数字,三者的关系,做进一步的讲解. 截取商品列表响应结果数据中的一段商品数据如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 {     "s

Jmeter进阶学习二(参数化)

1.疑问:为啥要使用参数化? 在测试过程中,参数化也是一种很重要的东西,比如:如果系统过程中多次使用同一个id,万一此id发生变化了,就需要每个文件中id一个一个的进行修改,如果使用参数化的话,就只需修改一个文件即可: 这样的话可以减少工作量: 2.此处采用的是用户定义的变量: 3.如何调用定义的变量? ...... 未完待续.... Jmeter进阶学习二(参数化)

【转】JMeter学习(三十二)属性和变量

一.Jmeter中的属性: 1.JMeter属性统一定义在jmeter.properties文件中,我们可以在该文件中添加自定义的属性 2.JMeter属性在测试脚本的任何地方都是可见的(全局),通常被用来定义一些JMeter使用的默认值,可以用于在线程间传递信息. 3.JMeter属性可以在测试计划中通过函数 _P 进行引用,但是不能作为特定线程的变量值. 4.JMeter属性可以通过_setProperty 函数来定义JMeter属性 5.JMeter属性是大小写敏感的 6.WorkBenc

JMeter学习-004-WEB脚本入门实战

此文为 JMeter 入门实战实例.我是 JMeter 初学菜鸟一个,因而此文适合 JMeter 初学者参阅.同时,因本人知识有限,若文中存在不足的地方,敬请大神不吝指正,非常感谢! 闲话少述,话归正题.本文将从 Chrome浏览器代理配置.JMeter HTTP代理服务器 配置.JMeter HTTP代理服务器获取HTTP请求.JMeter脚本创建.JMeter脚本运行 五个方面,分三大块对 JMeter 初级实战应用配以图文,进行详细步骤描述,真正的做到一步一步.从无到有. 一.WEB 浏览