【软件测试】Lab3—Jmeter
1.在ubuntu上安装 apache,mysql 和 php,分别使用以下命令:
其中安装php后会出现apache无法解析php文件的情况,此时需要做如下修改:
(1):
在apache2.conf中找到
# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
在其后面添加
Include /etc/apache2/mods-available/php5.load
Include /etc/apache2/mods-available/php5.conf
(2)
在apache2.conf中添加:
AddHandler php5-script .php .html
AddType text/html .php .html
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
然后重启apache即可。
2.在ubuntu上安装ECshop
将老师给的ECshop的文件夹复制到ubuntu的/home/yatone/bin下:
其中ECShop_V2.7.3_UTF8_release1106中有三个文件夹:
Docs:ecshop的安装说明(Install.html)、ecshop的介绍(Reademe.txt)、rewrite的使用说明(URLRewrite.txt)等文件。
upgrade:升级包,如需升级将此目录放到网站跟目录下执行升级。
upload:该目录下是ecshop系统的安装程序文件,将此目录上传到网站空间根目录下。
(2):
将upload下的文件上传到站点根目录下的ecshop/中,并修改ecshop目录及其下文件权限:sudo chmod -R 777 ecshop
(3):
在浏览器中输入http://localhost/ecshop,启动安装程序:
根据步骤即可安装成功:
安装完成后首页如下:
其中因为php5版本问题会出现好多错误,下面是我遇到的错误以及解决方法:
①Deprecated: preg_replace() 问题:
把:return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);
改成:return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);
别的报这个错的改的类似,如果个别多个e之类的,刷新主页时会提醒,照着改就好了。
② Strict Standards: Only variables should be passed by reference 问题:
把 $tag_sel = array_shift(explode(' ', $tag));
改成:$arr=explode(' ', $tag);
$tag_sel=array_shift($arr);
③ file_put_contents 和 can't write 问题:
把temp的权限改为777,然后把chaches里面的除了index.htm之外的文件都删掉。
(4) 安装sysstat,并查看状态
打开ubuntu命令行,敲入:apt-get install sysstat
安装完成后,启动sysstat:启动服务,执行/etc/init.d/sysstat start
敲入:sar -r来查看CIMN性能:
CPU:
Memory:
IO:
页面交换:
平均负载:
Linux的top截图如下:
(5).安装Jmeter
先安装JDK:
官网下载jdk到ubuntu,解压到/user/local/java,然后配置环境变量,vi /etc/profile:
重启或者source /etc/profile后安装成功:
然后安装Jmeter:
在命令行直接输入:apt-get install jmeter即可(需要root权限),安装完成后,输入jmeter即可打开jmeter窗口:
(6). 使用jmeter
jmeter的录制有两种方法:第三方录制(使用badboy)和设置代理录制(录制脚本前,我们只要启动好代理,手动通过IE或者火狐来录制,录制完毕停止代理。),此处为设置代理录制。
根据老师提供的jmeter_proxy_step_by_step.pdf,进行操作,过程部分截图:
根据步骤完成即可打开JMeter代理服务器,其可以用于拦截浏览器请求。其中还需要根据
http://jmeter.apache.org/usermanual/component_reference.html#HTTP%28S%29_Test_Script_Recorder
来安装JMeterCA certificate for HTTPS recording。下面是在火狐狸安装certificate的过程:
首选项->高级项->证书->证书机构->添加
然后进入火狐,设置代理:首选项->高级->网络->设置->然后修改如下图:
接下来即可输入http://jmeter.apache.org/index.html录制了:(注意因为上面的web服务器名称填的是jmeter.apache.org,并且include只有html格式的网页,所以只能进入以jmeter.apache.org为server的网页了,如果要录制其他网页,则可以根据情况改变填进去的值)
根据jmeter_proxy_step_by_step.pdf的步骤,添加summary report,设置线程数和循环次数,开始压力测试:
得出summary report和结果树:
=========================================================================================
实验报告部分要求的截图
下面是用Jmeter访问ecshop,对其进行5*10,50*20, 的压力测试,其Jmeter Aggregate Report,以及sysstat查看统计信息的截图:
1.Linux下top命令的截图:
2.访问的B/S系统截图:
3.Jmeter的Testplan展开截图
4.Beanshell代码
断言结果:(因为是5*10的,所以有很多的重复数据)
5.运行Jmeter测试之后的Aggregate Report Result截图:
5*10压力测试:
50*20:
6.运行Jmeter测试之后的服务器性能截图:
top截图:
sysstat截图,以下是在ubuntu里面的截图:
5*10:由上至下分别为:cpu,memory,IO,页面置换的状态。时间间隔为30秒。
50*20:由上至下分别为:cpu,memory,IO,页面置换的状态。时间间隔为90秒。