阅读《全栈性能测试修炼宝典JMeter实战》第四章笔记(一)

  • JMeter脚本开发

多数的性能测试脚本都是基于HTTP协议,本章我们结合实例来讲解HTTP协议的脚本录制与开发。

  • 4.1、JMeter工作区介绍

1、工作区介绍

各个分区介绍:

1、区域1是一个目录树,存放测试设计过程中使用到的元件;执行过程中默认从根节点顺序遍历树上的元件。工作台也可以用来存放元件,元件不会被执行,可以备份;

元件:例如我们要向服务器发送一个Http Post请求,这个请求是由一个HTTP请求取样器来完成的,叫做“HTTP请求”的取样器就是元件。在1区域添加进来的都是元件;

2、区域2是测试计划编辑区域,在【用户定义变量】区域我们可以定义整个测试计划共用的全局变量,这些变量对多个线程组有效,还可以添加测试计划依赖的jar包,比如JDBC方式连接数据库的驱动;

3、区域3是菜单栏,图标是快捷键方式,从左到右依次是:

(1)新建测试计划;

  • 4.2、JMeter Http协议录制 

LoadRunner的录制功能让性能测试脚本编写成为一件容易的事情,也只因为这件事情,它坐上了性能测试的头把交椅。JMeter作为开源性能测试工具中的王者当然少不了提供录制功能。JMeter的录制除了自身提供的HTTP代理方式进行录制的原理是解析网络数据包,按Http协议包装成Http  Request、Http Response等对象;

4.2.1、Badboy进行录制

Bd是一个浏览器模拟工具,具有录制及回放功能,还可以进行测试。可以用它来做自动化测试,因为它有捕获表单数据的功能。我们可以用它来对Web页面进行诊断,诊断系统响应快慢,响应数据大小。

Badboy录制的脚本可以直接导至成.jmx格式,此后缀正是JMeter脚本保存的格式,jmx实际上是一个XML格式的文件。

Badboy有两种录制方式:Request方式与Navigation方式。以下对Badboy的录制方式的区别仅进行介绍

1、request:模仿浏览器发送表单信息到服务器,每一个资源都将作为请求发送;

2、Navigation:记录用户鼠标动作,类似于著名的自动化测试工具QTP,回放时模拟一个点击;

基于JMeter脚本要求,我们需要选用request方式来进行录制,这些请求将会以jmx的格式保存下来,从而我们才可以导入JMeter中复用。

Badboy可以安装在电脑上,下载地址为:https://badboy.en.softonic.com/,目前只有windows版本的,没有mac版本的。

使用Badboy工具制造测试脚本的步骤(书本62页前后):

1、在Badboy的输入栏中,输入需要录制的地址,之后点击右箭头,开始录制;

2、登录:输入用户名和密码,进入论坛首页;

3、进入其中一个板块;

4、在此板块发送一个新贴;

接下来导出为jmeter文件就可以了;

  • 录制为脚本以后的动作

1、介绍脚本中的各个元件:

(1)设置用户全局变量,即在“用户定义的变量”中定义;

(2)独立进行每个线程组:如果一个测试计划中有多个线程组,设置此项可以生效。不设置时每个线程组同时运行;

(3)Run teardown Thread Group,关闭主线程后运行teardown程序来正常关闭线程组(运行的线程本次迭代完成后关闭);

(4)函数测试模式:在调试脚本的过程中我们可能需要获取服务器返回详细信息就可以选择此项,此项记录较多的数据会影响测试效率,所以在执行性能测试时请关闭此项;

(5)Add directory or jar to classpath,把测试需要依赖的jar包或包所在的目录加入类路径,建议大家放在jmeter/lib目录底下;

2、ThreadGroup:线程组,模拟虚拟用户的发起点,在此可以设置线程数及运行次数或者运行时长,还可以定义调度时间与运行时长;

3、HTTP Cookie Manager:我们知道IE访问Web页面时会记录Cookie信息,JMeter通过加入HTTP Cookie Manager来自动记录Cookie信息,JMeter通过加入HTTP Cookie Manager来自动记录Cookie信息;

(1)JMeter支持的Cookie标准有多种,同时,JMeter也提供了两组程序实现来支持这些Cookie标准,分别是HttpClient3与HttpClient4。可以将他们看成一个没有界面的浏览器,用它来完成浏览器的各种动作。

4、以下是Cookie标准,HttpClient3.1可以支持:

RFC2109、RFC2965、Netscape标准、Browser Compatibility、Ingore  Cookie

5、User Defined Variable:用户自定义的变量,在此我们可以定义后面元件需要引用的变量并对其进行赋值。jsessionid一般是服务器返回的,每个用户返回的都不一样,所以在此不应该固定这个值,但是Badboy转换的脚本把jsessionid放到了此元件中,所以我们要把它除掉; 

6、Http Header Manager:管理HTTP头信息,我们可以从中找到诸如User-Agent、Connection、content-type、Accpect、Cookie、location302重定向地址等信息;

 7、Step1:实际上这是一个循环控制器,我们可以在【逻辑控制器】中找到它。在此我们可以设置循环次数,以我们录制业务为例,一次登录可以多次发送新贴,所以把登录Step1的循环次数设置为1,Step2/3进入板块与发帖的循环次数设置为永远。

8、一个网址就是一个HTTP请求元件,可以在【Sampler】中找到它的身影。

登录页面的脚本模拟,模拟进入登录页面:

9、属性介绍:

(1)Web服务器:指定Http请求的主机地址,不需要加上“http://”,JMeter 自动加上,普通Web服务端口默认是80,邮箱端口一般是443,126邮箱也用此端口;如果访问地址中带有其他端口号应该在对应的位置填上;

(2)Tmieouts:指定超时时间,单位是毫秒;Connect指定连接超时时间,Response指定响应超时时间;

(3)Implementation:下拉列表有3个选择项,其中HttpClient是Apache Jakarta Common下的子项目,通过它可以高效地访问HTTP协议的资源,我们可以把它看成是一个没有界面的浏览器。建议使用HttpClient4;

(4)协议:我们录制的论坛登录用的是http协议,所以在此要填入http。https是SSL的连接;

(5)方法:下拉列表中有八个选项,其中我们常用的是Post提交请求对于表单理论上没有长度限制,用户一般也看不到提交的内容,较get方式安全;

(6)Content encoding:字符编码格式,默认iso8859,不确定时可以向开发团队确认,不妨试一下UTF-8,大多数应用都会指定成UTF-8格式;

(7)路径:除去主机地址部分的访问链接,这是/entry/cgi/ntesdoor;

(8)自动重定向:HttpClient接收到请求后,如果请求中包含重定向请求,HttpClient是可以自动跳转的,但是只针对Get与Head请求,勾选此项则“跟随重定向”失效;

(9)跟随重定向:Http Request取样器是默认选项,当响应Code是3xx是,自动跳转到目标地址。JMeter与自动重定向不同,会记录重定向过程中的所有请求响应,在查看结果树时可以看到服务器返回的内容,可以对响应的内容做关联;

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全栈性能测试修炼宝典 JMeter实战》是软件测试领域里程碑式的重要著作,由多位培养出经理级乃至总监级性能高手的大师联手创作,本书深入讲解了性能测试实践操作过程中诸多难题的调优心法,实现从理论到实操的升华。列出自学所需的性能技能目录树,助力测试小白迅速成长为技术大牛。从脚本到运维、公式到指标的运用掌握应有尽有,手把手教你性能测试技巧。此书在手,助你走出迷茫。   内容推荐   “基础篇”:欲练神功,不必自宫。打我基础,从此坦途。   “工具篇”:欲善其事,先利其器。神剑在手,天下任走。   “实践篇”:练武无功,到老皆空。有武有功,江湖轻松。   “提升篇”:江湖之大,无奇不有。融会贯通,相忘江湖   首部分:基础篇   帮助初学者或想踏入这个行业的工程师迅速了解除工具以外的性能测试的真实本质。去伪求真,使读者能够把握性能测试要点和难点及职业规划有进一步的认识。不管你是内行还是外行,读完后必有所获。   第二部分:工具篇   可当JMeter工具书来进行查阅,是市面上目前为止比较全面的JMeter讲解工具。学会热门的负载工具JMeter,对各种常见协议的性能测试工作(包括自动化测试) 测试脚本不用愁。   第三部分:实践篇   可学到Linux、Windows平台的性能监控、诊断分析;炼就火眼金睛,见微知著的技能;性能问题快速定位。   适合中高级性能测试工程师阅读,掌握性能分析方法,学会如何调优,了解当前的性能调优手法。   可跟书中实例操作,掌握性能测试整个过程,包括需求分析、测试计划、脚本开发、测试数据制作、测试执行、测试结果诊断分析、性能调优整个过程,真正能够开始进行性能测试工作。   第四部分:提升篇   性能测试自动化(Jenkins+Ant+JMeter),能够很方便的实现性能测试回归。提高产率,更少的人力,更低的功耗,更高的生产率;老板怎么爱你都不算多。   另外,前端的性能表现会直接影响到客户体验,前端性能测试也将成为新的性能点,读者可以更深层的了解此方面的知识。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值