使用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-08-27 16:09:14

使用Jmeter易遇见的问题的相关文章

Jmeter性能测试请求超时:目前遇见有三种情况

1.请求连接超时.连不上服务器.一般是因为线程太多 2.连接成功,但是读取超时.等不到服务器返回的数据,一般是这次请求查询的量很大,比如查了5度的顶点.(timeout小于server的最大等待时间) 3.连接成功,server查询数据时超时(就是因为2请求的导致的)server超时机制,如果查询时间超过30s自动报错.(timeout大于server的等待时间) 原文地址:https://www.cnblogs.com/tarzen213/p/12056400.html

jmeter性能测试—登录百度进行搜索(图解)(二)

6. 继续,我们点击了登录按钮,百度为了防止csrf攻击,会给我们一个token(这个token在我们提交密码时一起提交过去),我们要在jmeter中再新建一个http请求,来获取这个token,get方法.相应参数如图: 我们仍旧需要一个正则表达式来获取这个token,注意这个token并没有放在返回消息的http头中,而是在响应消息中的js代码中,故firefox中我们无法看到,这里我用的是burp suite这个工具(具体使用方法参见:http://www.yeetrack.com/?p=

Robotlegs2.2 中遇见的问题

purMVC用了2年多 终于淘汰了 现在开始用Robotlegs Robotlegs是一个好框架 轻量易用 ,这次讲讲Robotlegs2 中 Mediator的手动构建方法 因为之前有遇见过需要手动构建的 比如: 使用 flex 的 PopupManager的时候 PopUpManager 会把popup创建到contextView外面的显示列表里,所以Robotlegs就无法获悉这个视图是什么时候加载的,就没有办法和Mediator关联 . 解决这类问题 当然就要手动构建Mediator m

JMeter学习-013-JMeter 逻辑控制器之-如果(If)控制器

前文简述了 JMeter 如何通过 HTTP Cookie管理器,实现了在不执行登录操作的情况下,通过 Cookie 实现登录态的操作,具体请参阅:JMeter学习-012-JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录. 我们在日常的自动化测试脚本编写过程中,通常会有需要进行判断的逻辑,从而根据判断条件的真假,控制是否进行相应的操作.JMeter 提供了一些逻辑控制器(例如:ForEach控制器.事务控制器.如果(If)控制器.循环控制器等),以供我们在自动化

JMeter:基本及参数化、关联

一.JMeter和LoadRunner对比 1.lr稳定,使用c写,jmeter跨平台,免费,开源,小巧,java写的: 2.jmeter没有进程方式,只有线程: 3.jmeter没有IP欺骗: 4.lr有不同带宽下的测试,jmeter没有. 二.JMeter的配置 1.path环境变量的配置: 程序的执行需要使用外部的指令javac,但是javac仅仅只能在jdk安装目录下的bin目录下执行,因此程序只能写入bin目录.程序开发过程中,不能将源代码写入JDK的安装目录,因此需要将源程序保存到任

使用jmeter进行APP接口测试经验总结

使用工具: Fiddler.Jmeter 测试步骤: 1.    确认接口 从开发人员那里获取接口文档,接口文档应该包括完整的功能接口.接口请求方式.接口请求URL.接口请求参数.接口返回参数. 如果当前项目没有接口文档,则可以使用fiddler对APP进行抓包确认. fiddler对手机进行抓包的方法可以参考:http://blog.csdn.NET/whorus1/article/details/50673740 在手机上对APP进行操作,然后在Fiddler中可以抓取对应的网络交互信息(一

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学习-007-JMeter 断言实例之一 - 响应断言

之前的文章中已经对如何录制 web 的请求进行了详细的描述,敬请参阅:JMeter学习-004-WEB脚本入门实战 同时,我们的手机应用(例如:京东.天猫.唯品会.携程.易迅 等等 App)所发出的请求,也可进行录制,只需要将手机连接的无线网络代理到本机(以 iPhone 为例,依次点击 [设置]/[无线局域网]/[连接网络信息,即网络右侧详细信息符号]/[HTTP代理]/手动],填写 服务器IP.端口 对应填写 JMeter 机器的 IP.JMeter HTTP 代理端口 即可),并将对应的端

转:jmeter性能测试---登录百度进行搜索

在做web程序性能测试时,loadrunner和jmeter是两款常用的工具,两者比较起来,jmeter非常轻巧,且开源免费,上手快.这里简单介绍下jmeter的使用,以登录百度进行搜索为例. jmeter运行需要jdk环境,这个不多做介绍.软件界面: 右击“测试计划”,添加一个线程组 线程组界面可以配置线程的数量,“Ramp-Up Period(in seconds):"这个参数是 配置这些线程组在多少时间内完全启动(可以把时间设置长点,这样防止一开始就对服务器造成很大压力),还可以配置循环次