web应用测试

感觉公司都不用这些o( ̄▽ ̄)o

1.工具的安装

  • Jmeter安装,只需要在官网下载,直接安装即可,使用时直接打开安装bin目录下的jmeter.bat
  • Jmeter使用,可以设置行为和监听,以及设置线程等
  • badboy安装,为了更简便的使用Jmeter录制脚本安装badboy,下载地址,傻瓜式安装即可
  • selenium安装,selenium是python3自带的(python2需另下),若是用selenium测试web,还需要下各个浏览器的driver,也无法录制需自己写脚本,为了更方便的录制下载了selenium IDL,这次测试全在chrome中,所以下载的是selenium IDE for chrome(之前只支持FireFox),直接用chrome打开,chrome商店会自动自动加载这个插件,会显示在右上角

2.selenium&Jmeter脚本的录制

####1.selenium

  • 1.1 打开selenium IDE,输入一个初始url,IDE会以打开这个初始url为标志进行录制
    图2.1
  • 1.2 以google.com为例,这次录制脚本就是打开谷歌首页,搜索一个词hello,录制录制结束以后直接点击右上角的停止,然后保存即可,会保存为一个.side文件

####2.Jmeter&badboy

  • 2.1 用badboy进行辅助录制,打开badboy,新建一个test,进入google.com,点击play按钮开始录制,同样搜索一个词hello,录制结束以后点击红色圆圈,然后可以点击菜单栏的view -> report看录制的一些数据,若要导出Jmeter脚本,则点击file -> export to Jmeter,生成以一个jmx文件
    图2.2
    ####3.两种脚本差别分析
  • 3.2首先看badboy录制的脚本
    图2.3
    文件中首先有对线程组(ThreadGroup)的定义,说明利用jmx脚本可以进行规模化的测试。文件主体内容由一系列采样器(HTTPSampler)组成,每条HTTPSampler标签内包含了一系列属性,对应一条http请求。
  • 3.3再看selenium录制的脚本
    图2.4
    由文件内容可知,一个测试场景的测试过程由一条条命令(command)构成,每条命令包括命令类型、命令目标
  • 3.4差异:最明显的就是长度,badboy录制的脚本显然长度更长。另外selenium更注重应用测试,jmx脚本注重性能压力测试

3.web应用性能测试(基于三个场景)

  • 3.1 这里是两个脚本,test1,test2,都进行了三个场景的测试
  • 3.2 test1脚本完成了进入redmine->登录redmine->点击我的工作台并查看maven项目,test2脚本完成了进去qq邮箱界面->登录qq邮箱->点击收件箱并查看一封邮件
  • 3.3 脚本参数化:在test1测试中对脚本进行了参数化,设置了登陆的账户名和密码,从文件读取
    图3.1
  • 3.4 测试场景配置:
    (1)设置线程、访问时间、循环数,只需要点击thread group进行设置即可,如图设置了100个线程在10秒内执行并进行两个循环
    图3.2
    (2)设置查看结果树。查看结果树可以很清晰的看到该网页是否访问成功(绿色代表成功,红色则不成功)add->listener->view results tree
    图3.3
    (3)设置断言。这个功能和查看结果树有些相似,可以根据界面上的一些元素进行匹配来判断一个界面是否访问成功,首先添加断言add->assertions->response assertions
    再添加断言结果 add->listener->assertion results
    若是未能成功怕匹配则断言中会出现fail
    图3.4
    图3.5
    (4)添加一些用以分析网页性能的report以及graph(summary report,aggregate report,response time graph等)
    (5)测试执行可以直接run或是单步执行,在执行过程中就可以看到结果
    (6)结果分析(以test2文件为例),首先在总体结果报告中可以看到我的出错率为0,平均响应时间为83,最大响应时间以及最小响应时间分别为33/417,传输速度达到589.93kb,从数据上来看网页性能较好
    图3.6
    那么在查看结果树中因为错误是0所以是全是绿的
    图3.7
    结果图将总体报告中的一些数据用图反映出来
    图3.8
    再看响应时间图,一直较为平稳,也就是说即使是密集访问的时间也能保持较快的响应时间,这也能看出网站的性能较好
    图3.9
求打赏