一、安装及启动Jmeter
 本文原创,专为光荣之路公众号所有,欢迎转发,但转发请务必写出处! 
0、下载及安装
下载地址及Linux命令
wget http://mirrors.cnnic.cn/apache//jmeter/binaries/apache-jmeter-3.0.tgz
官网下载好tgz的Jmeter压缩包之后,直接解压,解压后的目录结构和windows版本的一致。
1、运行Jmeter报错NonGUIDriver
[root@BJ-TEST-11-kvm-221 bin]# ./jmeter.sh -n -t ../project/realnameauthINFTest/RNA_INFtest.jmx -l log.jtl
Writing log file to: /home/bjqa/apache-jmeter-3.0/bin/jmeter.log
Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading XML from:'/home/bjqa/apache-jmeter-3.0/bin/../project/realnameauthINFTest/RNA_INFtest.jmx', missing class com.thoughtworks.xstream.converters.ConversionException: kg.apc.jmeter.vizualizers.CorrectedResultCollector : kg.apc.jmeter.vizualizers.CorrectedResultCollector
---- Debugging information ----
解决:
产生该错误的原因,目前有两种情况:
情况1,低版本的JMeter运行高版本的测试计划(测试计划是在高版本的JMeter上编制的)。解决方法:使用相同或更高版本JMeter运行该计划。
情况2,使用第三方插件生成的测试计划,运行在没有该第三方插件的JMeter上。解决方法:在JMeter上安装插件或重新生成不包含插件的测试计划。
 
2、运行日志中出现java.net.UnknownHostException错误
2016/08/15 16:02:34 ERROR - jmeter.util.JMeterUtils: Unable to get local host IP address. java.net.UnknownHostException: BJ-TEST-11-kvm-221: BJ-TEST-11-kvm-221: Name or service not known
 
[root@BJ-TEST-11-kvm-221 apache-jmeter-3.0]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1   localhost MDRADEL0 BJ-TEST-11-kvm-221     <----新增内容
~
 
[root@BJ-TEST-11-kvm-221 etc]# vim /etc/sysconfig/network
NETWORKING=yes                                         <--检查确认这种写法
HOSTNAME=BJ-TEST-11-kvm-221                 <--检查确认这种写法
 

二、脚本编写与运行接口测试

1、Linux下Jmeter概述
   
  难点1、Linux如果是无操作系统UI,则修改jmx脚本比较费劲,全部都是XML形式;
  技巧1、Jmeter测试计划xx.jmx小范围小数据修改还可以对照windows下notepad++打开的jmx进行修改,大范围修改最好是直接拷贝windows下的jmx内容到Linux下jmx文件中,再进行少量windowsy与Linux有
 
    难点2、Linux下Jmeter测试结果是无界面化的,在Linux下基本上无法查看
    技巧2、必须将Jmeter生成的测试结果xx.jtl文件拷贝到windows下,专门在windows下的Jmeter创建一个测试计划,添加想要查看测试结果的组件,如【查看结果树】,【聚合报告】等,并在文件名栏位右侧使用浏览选择Linux下生成的jtl文件,即可看到Linux上的测试结果。每个组件需要导入一次。
                                                                            
    技巧3、如何生成有时间作为名称的测试结果jtl文件?
    答:直接在【聚合报告】的日志写入文件栏位按照Linux下路径习惯写好,如:/home/bjqa/apache-jmeter-3.0/logs/morePresult${__time(YMD)}${__time(HMS)}.jtl ,则测试结果会在/home/bjqa/apache-jmeter-3.0/logs/目录下生成类似 morePresult201608151722.jtl
        特别的,这里不要写相对路径,相对路径不是很靠谱,绝对路径可以绝对的找到日志文件。此时Jmeter运行命令如下:jmeter -n -t /home/bjqa/apache-jmeter-3.0/testplans/realnameauthINFTest/RNA_INFtest.jmx   
         看到没有,根本不需要增加 参数 【-l xx.jtl】来生成日志文件,因为测试计划的jmx 【聚合报告】里面已经指定过了,去/home/bjqa/apache-jmeter-3.0/logs这里就能查到日志。
    但在查看图形化测试结果中有个坑:从Linux上拿回来的测试结果jtl文件在windows打开报错?多在几个脚本上面,用聚合报告打开试试,这里可能涉及到聚合报告中configure里面勾选的内容,但目前没有定论。
    
    技巧4、想看个接口请求结果,还得把jtl文件导回到windows环境,太费劲了,如何破?
    答:临时使用jmeter的log功能,在http请求中增加BeanShell PostProcessor组件,写入脚本: 
prev.setDataEncoding("UTF-8");
String response_data = prev.getResponseDataAsString();
log.error("response_data----------------:"+response_data);    <==高亮部分可自由发挥
 
则在jmeter.log文件中可以看到如下日志:
2016/08/17 17:09:06 ERROR - jmeter.util.BeanShellTestElement: bodydata0----------------:{"mid":"123456","data":"{\"reqId\":\"201608171709060200\",\"idNo\":\"13*********11\",\"name\":\"**文\"}","sign":"70cf51c2e6f1a9a6b7b827a3f5939e21"} 
2016/08/17 17:09:06 ERROR - jmeter.util.BeanShellTestElement: response_data----------------:{"code":0,"data":{"result":1},"sign":"40af6eb30c698edd9c541bbfaa4a9aa3"} 
2016/08/17 17:09:06 INFO  - jmeter.threads.JMeterThread: Thread is done: setUp Thread Group 1-20 
2016/08/17 17:09:06 INFO  - jmeter.threads.JMeterThread: Thread finished: setUp Thread Group 1-20 
2016/08/17 17:09:06 INFO  - jmeter.engine.StandardJMeterEngine: All Setup Threads have ended 
2016/08/17 17:09:06 INFO  - jmeter.engine.StandardJMeterEngine: No enabled thread groups found 
2016/08/17 17:09:06 INFO  - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test 
2016/08/17 17:09:06 INFO  - jmeter.reporters.Summariser: summary +    173 in 00:00:07 =   25.7/s Avg:   705 Min:   403 Max:   888 Err:     0 (0.00%) Active: 0 Started: 0 Finished: 0 
2016/08/17 17:09:06 INFO  - jmeter.reporters.Summariser: summary =    600 in 00:00:25 =   23.8/s Avg:   767 Min:   108 Max:  1537 Err:     0 (0.00%)    <==零错误,则可以进行下一步压测
 
  坑1、测试计划中引入jar包,直接手写输入不会被真正保存。
      答:因为windows下Jmeter的测试计划Add directort or jar to classpath只能浏览选择文件或目录,无法直接新增手写文件目录或文件夹目录,即使在Jmeter客户端里手工书写并保存,也是无效的。
    因此在复制到Linux下之前可以使用notepad++修改,然后再交由Linux下Jmeter使用即可。
 
  坑2、VPN下SSH如何scp命令?
[testing@boce66]:/home/testing/apache-jmeter-3.0/testplan/RNAuth]#scp -P 322 root@200.100.10.158:/home/root/tmp/realname_infTest_Linux.jmx ./aa.jmx 
reverse mapping checking getaddrinfo for 178.16.143.219.broad.bj.bj.dynamic.163data.com.cn [219.143.16.178] failed - POSSIBLE BREAK-IN ATTEMPT!
root@200.100.10.158's password:                <===这里输入密码
realname_infTest_Linux.jmx                           100%  140KB 140.3KB/s   00:00    
[testing@boce66]:/home/testing/apache-jmeter-3.0/testplan/RNAuth]#ls
aa.jmx
 
  坑3、Linux下Jmeter3.0遇到java.net.SocketException: Connection reset
  可参考http://stackoverflow.com/questions/20802694/connection-reset-meesage-from-jmeter
 
  坑4、脚本的内容文字和UI上面你的说明文字未必能对的上
  
 
  本文原创,专为光荣之路公众号所有,欢迎转发,但转发请务必写出处! 
 
  总结虽然结束,但坑永远不会消失~~~20160824
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Linux下运行Jmeter测试所遇问题汇总的更多相关文章

  1. Linux下运行jmeter

    • 我们在做测试的时候,有时候要运行很久,公司用的测试服务器一般都是linux,就可以运行在linux下面,linux下面不能像windows一样有图形化界面,那怎么运行脚本呢,就先在windows上 ...

  2. 在linux下运行jmeter

    之前在用JMeter做性能测试时基本都用自己的笔记本电脑. 考虑到网络传输和占用系统资源情况时进行了以下分析: 1 在笔记本上,开始-cmd "ping 服务器",得到传输时间.在 ...

  3. linux下运行jmeter脚本

    1. win下生成测试计划   2. 上传至linux下 3.运行测试计划   sh jmeter.sh -n -t second_login.jmx -l res.jtl 错误1: solution ...

  4. Jmeter 使用技巧 (如何在linux下运行jmeter视窗界面呢)-jmeter如何模拟http发送gzip数据

    jmeter如何模拟http发送gzip数据 有时候我们需要模拟在客户端将数据压缩后, 发送(post)到服务器端. 通常这种情况,会发生在移动终端上. 这样做的好处, 是可以节省流量.  当然, 服 ...

  5. jmeter压测、操作数据库、分布式、 linux下运行的简单介绍

    一.jmeter压测 1.如何压测 常规性能压测:10-15分钟 稳定性测试:一周.2天等 如果想要压测10分钟,勾选永远,勾选调度器,填写600秒.也可以使用固定启动时间. 2.tps.响应时间 ( ...

  6. Jmeter(五十四) - 从入门到精通高级篇 - 如何在linux系统下运行jmeter脚本 - 上篇(详解教程)

    1.简介 上一篇宏哥已经介绍了如何在Linux系统中安装Jmeter,想必各位小伙伴都已经在Linux服务器或者虚拟机上已经实践并且都已经成功安装好了,那么今天宏哥就来介绍一下如何在Linux系统下运 ...

  7. 【转】在Linux下使用Jmeter执行测试任务

    想在Linux下运行jmeter必须先安装jdk,安装步骤如下: (1).下载一个linux可用的jdk包(比如:jdk-6u45-linux-i586.bin), (2).然后将jdk-6u45-l ...

  8. 【JMeter】JMeter在linux下运行

    之前在用JMeter做性能测试时基本都用自己的笔记本电脑. 考虑到网络传输和占用系统资源情况时进行了以下分析: 1 在笔记本上,开始-cmd "ping 服务器",得到传输时间.在 ...

  9. Linux下使用Jmeter做性能测试

    一.安装Jmeter 1.上传Jmeter压缩包到Linux服务器,如:/opt目录下 2.解压缩 unzip apache-jmeter-3.1.zip 3.配置环境变量:vi /etc/profi ...

随机推荐

  1. 在Windows下使用Git

    关于Git git是当今最流行的版本控制系统,因为是诞生在Linux操作系统下,因此Linux对git天生有最好的支持,但好在各路大牛的努力下,目前在Windows也能较为完美的使用.以下便是我使用g ...

  2. 获取EMF文件内全部文字, 并按照左上到右下的顺序排序

    因为工作要求, 需要对EMF文件文字内容做分析.....SO, 如下代码出现了 懒得加注释了, 反正对外接口属性就那么几个, 根据英文猜吧, 很容易的 说明一下: 这个东西结果会对所有文字内容按照左上 ...

  3. js 图片加载完后的处理事件

    //图片加载完成后再显示页面 document.getElementById('icon').onload=function(){ document.getElementById('wrap').st ...

  4. iOS10 适配、Xcode8配置总结

    随着iOS10的推送更新到来,勤劳的程序员又在加班加点的搬砖了,为此收集了一些iOS10 更新的技能给大伙参考,不断更新喜欢就star 前沿 一.Xcode8 插件你去哪了 以为是和之前一样 Xcod ...

  5. iOS用户信息单例的创建

    UserInfo.h + (UserInfo *) sharedInstance; UserInfo.m #import "UserInfo.h" static UserInfo ...

  6. 从一个NOI题目再学习二分查找。

    二分法的基本思路是对一个有序序列(递增递减都可以)查找时,测试一个中间下标处的值,若值比期待值小,则在更大的一侧进行查找(反之亦然),查找时再次二分.这比顺序访问要少很多访问量,效率很高. 设:low ...

  7. iOS中的线程安全问题

    为了保证线程安全,不会因为多个线程访问造成资源抢夺,出现的运行结果的偏差问题,我们需要使用到线程同步技术,最常用的就是 @synchronized互斥锁(同步锁).NSLock.dispatch_se ...

  8. 微博开放平台api使用

    前言:微博开放平台提供了微博数据的api接口,不仅可以直接通过api调用微博服务发布微博查询微博,更重要的是,可以在自己的网站上获得新浪微博api的授权,调用微博的某些内容,就好像我们再网站中看到好文 ...

  9. JMeter学习-037-JMeter调试工具之四-BeanShell+jmeter.log

    前面三篇文章分别讲述了 HTTP Mirror Server . Debug PostProcessor 和 Debug Samper 的脚本调试实例.此文主要讲述第四种调试方法,通过 BeanShe ...

  10. Python开发程序:RPC异步执行命令(RabbitMQ双向通信)

    RPC异步执行命令 需求: 利用RibbitMQ进行数据交互 可以对多台服务器进行操作 执行命令后不等待命令的执行结果,而是直接让输入下一条命令,结果出来后自动打印 实现异步操作 不懂rpc的请移步h ...