JMeter录制
JMeter自身提供了http代理方式进行录制,原理是解析网络数据包,按Http协议包装秤Http,Request,HttpResponse等对象,同时也提供了第三方工具BadBoy进行录制。
BadBoy录制
BadBoy就是一个浏览器模拟工具,功能有:
1.1具有录制回放功能
1.2可以进行调试
1.3可以用来做自动化测试,因为具有捕获表单数据的功能
1.4对web页面进行诊断,诊断系统响应快慢,响应数据大小
1.5录制功能,录制的脚本可以直接导出jmx格式。
BadBoy的录制方式:
1.request:模仿浏览器发送表单信息到服务器,每一个资源都将作为请求发送。
2.Navigation:记录用户鼠标动作,类似于QTP回放时模拟一个点击
基于JMeter脚本的要求,我们需要选用request方式来进行录制,这些请求将会以jmx的格式保存下来,从而我们才可以导入JMeter进行复用
下面我们安装BadBoy进行录制:
(1)下载badBoy进行安装(直接双击exe)
(2)打开BadBoy,在开始菜单中找到启动快捷方式点击打开,初始界面默认开启了Request的录制模式。点击菜单中的N可以切换成Navigation录制方式
在上图地址栏直接输入请求的页面,回车或者点击向右箭头开始录制。
Script目录树结构说明:
Test Suite 1:默认的脚本根节点,类似JMeter中的测试计划根节点
Test1:测试活动根节点,可以理解为一个业务功能的脚本存放在此目录下
Step2:测试活动的步骤,业务过长可拆分为多个步骤,建立多个Step
开始录制前介绍下jforum测试环境的安装:
我的Jforum环境搭建在win 7 64位系统之上
1. 到Jforum官网下载安装包,地址是http://jforum.net/download.jsp
2.解压下载的压缩包到%TOMCAT_HOME%webapps/目录(%TOMCAT_HOME%是你机器上Tomcat的安装目录),如下图
TOMCAT 和JDK 请自行网上下载和配置环境变量,教程很多。
3.启动TOMCAT:
4.进入安装页面,在浏览器中输入地址http://127.0.0.1:8080/jforum-2.1.9/install.jsp
我下的版本是2.1.9 所以是这个编号 ,根据自己下的版本来。
在配置JForum之前必须保证安装的库是存在的,本地需下载MySql,然后建立一个jforum的库,MySql请至官网下载, 我下的版本是mysql-5.6.37,下载安装步骤可参考:http://www.jb51.net/article/89224.htm,在安装JForum中选择的库就是在mysql中建立的jforum库,安装过程中会访问这个库并自动生成表结构以及初始化数据。我选择用JDBC来访问MySql的jforum库,账号是root账号,数据库端口默认是3306,数据库密码填入自己机器上设置的MySql密码。填完内容后点击下一步进行完成安装
如果遇到安装报错,请参考http://blog.sina.com.cn/s/blog_3cacb01b0102vocg.html。
回到BadBoy,输入url链接,可以看到论坛的登录界面,从这里开始进行录制步骤。访问这个链接之前要保证TOMCAT和MySql都已启动,不然网页链接不成功。
Step1:输入用户名和密码完成登录,成功后进入论坛首页(用户名和密码是配置jforum使用的管理员用户和密码)
Step2:进入相应版块
点击菜单栏中开始录制左边的+号新建一个Step2,进入Test Forum版块
Step3:发帖
同样点击+号,然后点击网页中的New post来编辑一个新帖,然后点发送
以上就是录制登录及发帖的全过程,录制完成后导出成JMeter脚本,如下图所示
下面我们在JMeter中打开刚刚保存的Script.jmx脚本,JMeter以树形结构显示脚本,执行时原则上按节点先后顺序往下执行
有关上图中的脚本元件介绍如下:
Test Plan:测试计划,JMeter测试脚本根节点,每一个测试脚本都是一个测试计划,名称可以自定义,功能有:
(1):设置用户全局变量,即在“用户定义的变量”中定义
(2):独立运行每个线程组,如果一个测试计划中有多个线程组,设置此项可以生效,不设置时每个线程组同时运行
(3):Run teardown Thread Groups after shutdown of main threads.关闭主线程后运行teardown程序来正常关闭线程组(运行的线程本次迭代完成后关闭)
(4):函数测试模式,在调试脚本的过程中我们可能需要获取服务器返回的详细信息就可以选择此项,此项记录较多的数据会影响测试效率,所以在执行性能测试时请关闭此项
(5):Add firectory or jar to classpath 把测试需要依赖的jar包或包所在的目录加入类路径
ThreadGroup: 是模拟虚拟用户的发起点,在此可以设置线程数及运行次数或者运行时间,还可以定义调度时间与运行时长
HTTP Cookie Manager:JMeter通过加入HTTP Cookie Manager来自动记录Cookie信息,选择默认即可
HTTP Header Manager:管理HTTP头信息
Step1:实际上这是一个循环控制器,我们可以在【逻辑控制器】下找到它,在此我们可以设置循环次数,以我们录制业务为例,一次登录可以多次发送新帖,所以把登录(step1)的循环次数设置为1(图17),step2/3进入板块与发帖的循环次数设置为永远
http://127.0.0.1.jforum-2.1.9/user/login.page:这是一个HTTP请求元件,我们可以在【Sampler】中找到他的身影 Step1-----添加----Sampler-----Http请求。
图18是模拟登录页面的脚本,模拟进入登录页面:
下面我们来认识下上图中的各种属性:
1.Web服务器:指定Http请求的主机地址,不需要加上“http://”,JMeter自动会加上,普通web服务端口号是80,邮箱端口一般是443,如果访问地址中带有其他端口号要在此框内填入。