软件测试技术自动化性能测试Word格式.docx
- 文档编号:15756820
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:14
- 大小:544.45KB
软件测试技术自动化性能测试Word格式.docx
《软件测试技术自动化性能测试Word格式.docx》由会员分享,可在线阅读,更多相关《软件测试技术自动化性能测试Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
背景知识
Apachejmeter是一个100%的纯java桌面应用,用于压力测试和性能测量。
它最初被设计用于Web应用测试但后来扩展到其他测试领域。
Apachejmeter可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java对象,数据库和查询,FTP服务器等等)的性能进行测试。
它可以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。
你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
Jmeter能够进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)。
实验设备
主流PC机一套,windows操作系统、WEB项目、jmeter、tomcat、badboy;
实验内容
1、制定性能测试计划和内容,编写性能测试用例
2、安装jmter和tomcat
3、利用jmeter,根据性能测试用例,编写功能测试脚本
4、运行jmeter,获得运行结果
5、针对不同性能测试用例,分析性能测试结果
实验步骤
一、实验环境准备
安装jdk1.5及以上版本
安装badboy
配置JAVA_HOME和CLASSPATH。
从apache官方网站http:
//jakarta.apache.org/jmeter/index.html下载Jmeter二进制文件并解压缩,启动%JMeter%\bin\jmeter.bat批处理文件,显示jmeter可视化界面。
启动tomcat
二、建立测试计划(TestPlan)
测试计划描述了执行测试过程中JMeter的执行过程和步骤,一个完整的测试计划包括一个或者多个线程组(ThreadGroups)、逻辑控制(LogicController)、实例产生控制器(SampleGeneratingControllers)、侦听器(Listener)、定时器(Timer)、比较(Assertions)、配置元素(ConfigElements)。
打开JMeter时,它已经建立一个默认的测试计划,一个JMeter应用的实例只能建立或者打开一个测试计划。
现在我们开始填充一个测试计划的内容,这个测试计划向一个jsp文件和一个servlet发出请求,我们需要JMeter模拟五个请求者(也就是五个线程),每个请求者连续请求两次,下面的章节介绍了详细的操作步骤。
三、增加负载信息设置
我们需要模拟五个请求者,每个请求者在测试过程中连续请求两次。
详细步骤如下:
1.选中可视化界面中左边树的TestPlan节点,单击右键,选择Add'
ThreadGroup,界面右边将会出现他的设置信息框。
2.ThreadGroup有三个和负载信息相关的参数:
线程数(NumberofThreads):
设置发送请求的用户数目
请求间隔时间(Ramp-upperiod):
每个请求发生的总时间间隔,单位是秒。
比如你的请求数目是5,而这个参数是10,那么每个请求之间的间隔就是10/5,也就是2秒
循环次数(LoopCount):
请求发生的重复次数,如果选择后面的forever(默认),那么请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复指定的次数,如果输入0,那么请求将执行一次。
将NumberofThreads设置为5,Ramp-upperiod设置为0(也就是同时并发请求),不选中forever,在LoopCount后面的输入框中输入2。
四、增加Http请求
增加http请求是测试的内容主体部分。
可以通过下面的步骤来增加性的http请求:
1.选中可视化界面中左边树的ThreadGroup节点,单击右键,选择“添加->
sampler->
http请求”,界面右边将会出现他的设置信息框。
2.参数设置和“增加默认Http属性”介绍的http属性差不多,增加的属性中有发送http时方法的选择,可以选择为get或者post。
现在增加两个http请求,因为我们设置了默认的http属性,所以和默认http属性中相同的属性不再重复设置。
五、增加Listener
增加listener是为了记录测试信息并且可以使用Jmeter提供的可视化界面查看测试结果,里面有好几种结果分析方式可供选择,你可以根据自己习惯的分析方式选择不同的结果显示方式,我们这里使用表格的形式来查看和分析测试结果。
你可以通过下面的步骤来增加listener:
1.选中可视化界面中左边树的TestPlan节点,单击右键,选择“添加->
监听器->
聚合报告”
2.选中可视化界面中左边树的TestPlan节点,单击右键,选择“添加->
用表格观察结果”。
3.选中可视化界面中左边树的TestPlan节点,单击右键,选择“添加->
图形结果”。
字段说明:
•Label:
每个JMeter的element(例如HTTPRequest)都有一个Name属性,这里显示的就是Name属性的值
•#Samples:
表示你这次测试中一共发出了多少个请求,我的测试计划模拟10个用户,每个用户迭代10次,因此这里显示100
•Average:
平均响应时间——默认情况下是单个Request的平均响应时间,当使用了TransactionController时,也可以以Transaction为单位显示平均响应时间
•Median:
中位数,也就是50%用户的响应时间
•90%Line:
90%用户的响应时间
•Min:
最小响应时间
•Max:
最大响应时间
•Error%:
本次测试中出现错误的请求的数量/请求的总数
•Throughput:
吞吐量——默认情况下表示每秒完成的请求数(RequestperSecond),当使用了TransactionController时,也可以表示类似LoadRunner的TransactionperSecond数
•KB/Sec:
每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
六、开始执行测试计划
现在你可以通过单击菜单栏run->
Start开始执行测试计划了,结果如下图所示:
八、用badboy录制jmeter脚本
Badboy是一款不错的Web自动化测试工具,如果你将它用于非商业用途,或者用于商业用途但是安装Badboy的机器数量不超过5台,你是不需要为它支付任何费用的。
也许是一种推广策略,Badboy提供了将Web测试脚本直接导出生成JMeter脚本的功能,并且这个功能非常好用,也非常简单。
录制过程如下:
1、在地址栏输入你需要录制的Web应用的URL—这里以为例,并点击GO按钮开始录制。
2、开始录制后,你可以直接在Badboy内嵌的浏览器(主界面的右侧)中对被测应用进行操作,所有的操作都会被记录在主界面左侧的编辑窗口中。
3、在这个试验中,我们点击图书馆,输入自己的帐号和密码,登录到图书管理系统中。
4、录制完成后,点击工具栏中的“停止录制”按钮,完成脚本的录制;
5、选择“File->
ExporttoJMeter”菜单,填写文件名“login_books.jmx”,将录制好脚本导出为JMeter脚本格式。
也可以选择“File->
Save”菜单保存为Badboy脚本;
6、启动JMeter并打开刚刚生成的测试脚本。
7、插入各种监听器,生成测试报告
实验要求
1、撰写实验报告,主要填写本人上机测试步骤和测试内容;
2、提交性能测试脚本
实验过程及步骤如下各图:
实验总结:
通过本次实验,对Junit单元测试框架有了一定的理解。
同时,熟悉了开源框架的使用,通过查找API函数,比如Assert.assertArrayEquals、Assert.assertEquals可以进行断言测试等等。
总之,通过本次实验,使我对软件测试有了一个初步的认识,开启了今后学习软件测试之门。
附:
测试脚本
<
?
xmlversion="
1.0"
encoding="
UTF-8"
>
jmeterTestPlanversion="
1.2"
properties="
2.1"
hashTree>
TestPlanguiclass="
TestPlanGui"
testclass="
TestPlan"
testname="
TestPlan"
enabled="
true"
stringPropname="
TestPments"
/stringProp>
boolPropname="
TestPlan.functional_mode"
false<
/boolProp>
TestPlan.serialize_threadgroups"
elementPropname="
TestPlan.user_defined_variables"
elementType="
Arguments"
guiclass="
ArgumentsPanel"
UserDefinedVariables"
collectionPropname="
Arguments.arguments"
/>
/elementProp>
TestPlan.user_define_classpath"
/TestPlan>
ThreadGroupguiclass="
ThreadGroupGui"
ThreadGroup"
ThreadGroup"
ThreadGroup.main_controller"
LoopController"
LoopControlPanel"
LoopController"
LoopController.continue_forever"
LoopController.loops"
1<
ThreadGroup.num_threads"
ThreadGroup.ramp_time"
longPropname="
ThreadGroup.start_time"
1281132211000<
/longProp>
longProp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 技术 自动化 性能