性能测试之目标系统部署
导读
安装VMware
安装Cent OS
安装SecureCRT
安装Redmine系统
Redmine系统简介
录制、调试登录脚本
目的:搭建一套论坛系统,当作压测的目标系统,来学习后续的知识点。所以本节很重要。
1、安装VMware
如果你有一台Linux服务器,请直接跳转到第3节。
(1)Windows安装VMware
打开百度,搜索VMware,将文件下载到本地,如下图所示:
双击下载好的“.exe”文件,安装,下一步,下一步即可
(2)Mac安装VMware
Mac下面可以安装VMWare Fusion或者Parallels Desktop
2、安装Cent OS
Cent OS是一个开源的,免费的Linux操作系统,好多公司的服务器就是使用Cent OS操作系统,或者类Cent OS操作系统。
下载源文件
1.1 访问地址:https://www.centos.org/download/,如下图所示:
1.2 点击DVD ISO,进入到文件下载列表,如下图所示:
1.3 选择一个镜像,点击即可开始下载。
注:如果下载速度慢,请换个镜像下载;下载文件有点大,需要耐心等待。
安装
2.1 打开VMWare,点击“创建新的虚拟机”,如下图所示
2.2 默认“典型”配置,点击“下一步”;
2.3 浏览到你下载好的Centos镜像文件,是一个后缀为.iso的文件,点击“下一步”;
2.4 输入用户名、密码等信息,点击“下一步”,“下一步”。。。。等待安装完成即可
2.5 安装完成后,进入系统,打开Terminal,输入命令ifconfig -a,查看虚拟机IP地址,如下图所示
3、安装SecureCRT
百度关键字,securecrt
下载安装
创建连接
注:为什么要安装SecureCRT?
SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。
公司的服务器一般在机房,没有图形化界面,一般也不会连接键盘,所以一般都是通过类似SecureCRT这样的工具远程连接
4、安装Redmine系统
Redmine是一个bug管理系统,将其作为我们的被测系统。
这里简单说下,为什么非要在Linux系统下安装被测系统,有两个原因:
首先,大多数系统都是工作在Linux操作系统下的,将来你要做压测的系统也是;
第二,我们后面还会学习Linux系统的资源监控和调优(性能测试的一部分)
(1)使用wget命令下载redmine安装文件
wget https://bitnami.com/redirect/to/181953/bitnami-redmine-3.4.4-3-linux-x64-installer.run
(2)给安装文件增加执行权限
chmod 755 bitnami-redmine-3.4.4-3-linux-x64-installer.run
(3)从命令行运行该.run文件
或
(4)从CentOS图形界面,双击该文件,打开图形化安装页面,类似Windows程序安装
(5)启动、重启服务
进入到Redmine安装目录,默认安装目录为/home/admin/redmine
[[email protected] redmine-3.4.4-3]$ ./ctlscript.sh
usage: ./ctlscript.sh help
./ctlscript.sh (start|stop|restart|status)
./ctlscript.sh (start|stop|restart|status) mysql
./ctlscript.sh (start|stop|restart|status) apache
./ctlscript.sh (start|stop|restart|status) subversion
help - this screen
start - start the service(s)
stop - stop the service(s)
restart - restart or start the service(s)
status - show the status of the service(s)
[[email protected] redmine-3.4.4-3]$ ./ctlscript.sh status
subversion not running
apache not running
mysql not running
[[email protected] redmine-3.4.4-3]$ ./ctlscript.sh start
/home/admin/redmine-3.4.4-3/mysql/scripts/ctl.sh : mysql started at port 3307
Syntax OK
/home/admin/redmine-3.4.4-3/apache2/scripts/ctl.sh : httpd started at port 8080
/home/admin/redmine-3.4.4-3/subversion/scripts/ctl.sh : subversion started at port 3690
5、Redmine系统简介
(1)登录Redmine
从Linux本地访问Redmine,地址:http://127.0.0.1:8080/redmine,点击右上角“sign in”,输入用户名、密码即可登录;
首次登录会提示你的用户名、密码失效,请更改密码
从Windows远程访问Redmine,地址:http://192.168.132.134:8080/redmine,发现请求失败,需要关闭Linux端的防火墙
如果你装的是CentOS 7,请使用下面的命令
[[email protected] rh]# firewall-cmd --state //查看防火墙状态
running
[[email protected] rh]# systemctl stop firewalld.service //关闭防火墙
[[email protected] rh]# firewall-cmd --state //再次查看状态
not running
[[email protected] rh]# systemctl disable firewalld.service //禁止firewall开机启动
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
如果你使用的是CentOS 6,请百度iptables命令
(2)为系统添加用户
点击菜单栏“管理”|“用户”|“新建用户”|输入用户信息,点击创建即可,如下图所示:
(3)为系统添加项目
点击菜单栏“项目”|“新建项目”|,输入项目名称和标识,点击创建,如下图
(4)为项目创建bug
选择项目,点击“问题”标签,点击“新建问题”,输入“主题”等信息,点击创建即可在该项目下创建一个bug
6、录制、调试登录脚本
(1)打开Badbody,录制登录动作
(2)尝试回放脚本
前两个请求回放成功,第3、4个请求回放失败
可以看到一个是一个无效的token
(3)将脚本导出成JMeter格式
(4)导入到JMeter中
来看看第3和4个请求包含哪些参数
其它几个参数看着比较正常(要么是短短的,要么就是我们输入的内容),但是这个authenticity_token好像有点TM不太对劲啊,这么长一串,分明是不想让人记住啊。
(5)添加个查看结果树,然后回放脚本看看
回放结果前两个正确,第3、4个失败,和Badbody一致。
我们来想一件事情,请求失败,大多数原因是传参错误,前面观察过了,就那个authenticity_token有嫌疑,录制本身的动作肯定不会记错,那一种可能就是前面的请求返回的authenticity_token会变化?试试我们的猜测
再回放一次试试,
两次的值果然不一样,那么问题就找到了
要想第3、4个请求发送成功,必须将传递的authenticity_token改成前一个请求返回的值,这就是我们接下来要学的第一个知识点,“关联”。
本章总结:
我们讲解了如何通过虚拟机,搭建一台Linux服务器,接下来通过SecretCRT连接、操作Linux服务器,然后将Redmine系统部署到服务器,最后录制该系统的登录请求。
难点在于:需要大家掌握一些Linux基本操作。告诉大家这不是多此一举,要想做性能测试,必须要掌握一些Linux知识,并且,非常,非常重要。