1. 测试工具
1)JMeter 2.13 ,需要jdk1.7, JMeter 3 需要jdk1.8。JMeter可以模拟用户负载,完成性能测试。
2)badboy 2.2, web自动化测试工具软件,可以录制和回放功能,录制的脚本可以导出为jmeter所支持的jmx格式。官网下载地址 http://www.badboy.com.au/
3)正则表达式验证器,这是一个正则表达是的验证工具。在提取http的response的内容时往往要用到正则表达式。
2. 测试环境配置
测试机windows 7操作系统,安装jdk1.7、JMeter、badboy和正则表达式验证器。
被测试系统,虚拟机,Linux操作系统CentOS6.6,安装jdk、mysql数据库、tomcat(7) web应用服务器和jforum-2.1.9 论坛软件。
这些软件的安装本身非常简单,对jforum-2.1.9 的配置稍作说明。
1)创建jforum数据库并授权
mysql> create database jforum
-> default charset utf8
-> collate utf8_general_ci;
Query OK, 1 row affected (0.04 sec)
mysql> grant all on jforum.* to 'jforum'@'%' identified by '123456';
2)执行jforum的install
http://192.168.174.34:8080/jforum/install.jsp
需要注意的地方中sql 脚本中TYPE=InnoDB的用法,数据库不支持。用vi编辑jforum/WEB-INF/config/database/mysql/mysql_db_struct.sql文件,执行替换然后保存,替换的正则表达式如下:
:%s/TYPE=InnoDB/ENGINE=InnoDB/g
:%s/Type=InnoDB/ENGINE=InnoDB/g
3. 测试用例
jforum是一个开源论坛,安装配置完成后,运行界面如下,添加的5个测试用户、一个版块分类和二个测试版块。
选择其中最基本的三个功能编制测试用例。
1)登录jforum
2)选择版块
3)发布帖子
4.用badboy录制脚本
1)录制脚本
启动badboy,点击录制,如上红色录制按钮 输入url,回车。操作完后,再次点击红色录制按钮停止录制。必须用request模式录制。登录jforum、选择版块和发布帖子分别对应一个步骤。
2)导出脚本
5.用JMeter调试脚本
1)启动jmeter导入脚本
2)Test Plan
测试计划,JMeter测试脚本的根节点,每一个测试脚本都是一个测试计划,名称可以自定义。
3)ThreadGroup
线程组模拟用户的发起点。多少个用户、运行次数和运行时间。
4)HTTP Cookie Manager
Jmeter通过HTTP Cookie Manager来自动记录Cookie信息,选择默认选项即可。
5)User Defined Variables
badboy转换将jsessionid定义到这里,需要删除jsessionid这个自定义变量。
6)HTTP Header Manager
选择默认即可。
7)Step
每一个step实际上是一个循环控制器,比如这个例子,登录执行1次,切换版块执行1次,发帖子执行多次。
8)查看结果树
增加一个监听器,可以看到服务器的返回信息。
9)HTTP请求
模拟页面请求
10)重定向
(1)自动重定向
返回登录页面
(2)跟随重定向当用post方式提交,且子请求也是重定向请求,则需要选择“跟随重定向”。选择“跟随重定向”沿用前面的JSESSIONID,否则会重建一个新的JSESSIONID。
提交登录参数(用户名密码),登录成功后,跳转到list页面。
5.执行测试,查看结果