软件测试实验指导书课件.docx
- 文档编号:4950424
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:44
- 大小:2.35MB
软件测试实验指导书课件.docx
《软件测试实验指导书课件.docx》由会员分享,可在线阅读,更多相关《软件测试实验指导书课件.docx(44页珍藏版)》请在冰豆网上搜索。
软件测试实验指导书课件
V2.0
软件测试
实验指导书
(试用稿)
编写:
李玮
校核:
______
湖南大学软件学院
2011年2月
目录
五、课堂实验项目
课堂实验项目
实验一黑盒测试用例设计实验
实验二性能测试:
loadrunner工具使用
实验三运用Junit工具进行面向对象系统的测试
实验四、EclEmma覆盖测试工具应用实验
实验一、黑盒测试用例设计实验
一、实验目的
主要是了解黑盒测试测试用例设计方法
二、实验要求
要求能正确理解系统设计和功能、代码,设计黑盒测试用例
三、实验原理及内容
一)系统物理结构图
在上述系统中,各个子站负责所属区域电表的数据采集,然后定期发送给主站,同时子站也可以向主站请求别的子站系统采集回的数据。
该数据交换程序的目的是实现主站与子站之间数据交换。
二)系统功能设计
通讯方式采用TCP/IP方式。
数据通讯通道以ATM(WAN)网络方式为主通道,以电话拨号PPP方式作为备份通讯方式。
1、数据通讯过程
数据请求和服务为双向方式。
主站心提供本地的数据服务,向下属单位子站提供数据,同时可随时向下属单位的数据服务请求数据,下属单位的工作方式和主站类似,可随时向调度中心请求数据,同时也提供数据服务,随时接受调度中心的请求。
如下图:
数据服务
数据服务
数据请求1
数据请求1
下属单位1
数据请求2
下属单位2
数据服务
调度中心
数据请求2
以上箭头表示数据连接,可并发产生。
数据请求过程如下:
其中,一次连接可进行多次数据请求和传送,每次请求只请求一段时间一个电量点的值。
如果某一包发生失败,则重试两次。
另外,设定Server监听的端口号为12099。
2、交换数据类型及规则定义:
电能量计量计费系统交换的数据有:
●指定时间间隔的电量数据(增量值)。
●指定时刻电量底码值(表底码值)。
数据时标:
电能量计量计费系统数据交换定义采用“后时标”(时标01点表示上一时间间隔至01时的数据)。
数据时间间隔:
数据交换的时间间隔由规约指定的时间间隔标志位决定,时间间隔由本系统数据库的时间间隔(也称为电量数据采集间隔)决定。
传输规则:
对于对方召唤的数据(未采集到的数据),传输时使用表底码值。
在进行电量修补时,传输的电量数据使用增量值。
3、数据报文格式:
本项目使用的应用协议数据单元有两种:
协议控制的APDU(ApplicationProtocolDataUnit),用于双方通信进程之间联系的建立,释放,放弃或复位。
APDU,用于电量数据的交换(发送,接收及应答控制)。
协议控制APDU格式:
协议控制APDU整体格式
报头6个八位位组
参数n个八位位组
数据校验和1个八位位组
报头格式
控制字第一个八位位组
运行模式第二个八位位组
状态标识第三个八位位组
原因码第四个八位位组
参数域长度(低)第五个八位位组
参数域长度(高)第六个八位位组
参数格式
本类型信息未使用,长度为01,即参数域长度为零。
扩充的APDU整体格式
报头6个八位位组
参数n个八位位组
数据校验和1个八位位组
报头格式
命令码第一个八位位组
数据帧序号第二个八位位组
状态标识第三个八位位组
原因码第四个八位位组
参数域长度(低)第五个八位位组
参数域长度(高)第六个八位位组
参数格式
本类型信息参数格式由各种命令格式决定,长度为n,即参数域长度变化。
注:
校验和字节=报头信息及参数信息全部内容按字节累加和(仅使用最低有效字节内容);例如某信息帧内容如下,
报头a1=01h,a2=02h,a3=03h,a4=04h,a5=03h,a6=00h,
参数b1=01h,b2=02h,
则校验和c1=(01h+02h+03h+04h+03h+00h)+(01h+02h)
=0ah(十进制10)
下面定义各种帧格式:
①建立链路:
client端:
报头(6字节)第1字节为A_ASSOCIATE(01h)
第2字节为mode(00h)
第3字节为status(00h)
第4字节为result_code(00h)
第5字节为info_LL(01h)
第6字节为info_LH(01h)
参数(16字节)Client端系统名
校验和(1字节)crc(xx)
server端:
报头(6字节)第1字节为A_ASSOCIATE_ACK(02h)[连接成功]
或A_ASSOCIATE_NAK(03h)[连接失败]
第2字节为mode(00h)
第3字节为status(00h)
第4字节为result_code=00h成功
=01h超时失败
=02hcrc校验失败
第5字节为info_LL(01h)
第6字节为info_LH(01h)
参数(16字节)Server端系统名
校验和(1字节)crc(xx)
②链路断开:
server端:
报头(6字节)第1字节为A_RELEASE(04h)
第2字节为mode(00h)
第3字节为status(00h)
第4字节为result_code(00h)
第5字节为info_LL(01h)
第6字节为info_LH(00h)
参数(0字节)
校验和(1字节)crc(xx)
client端:
报头(6字节)第1字节为A_RELEASE_ACK(05h)[断开成功]
或A_RELEASE_NAK(06h)[断开失败]
第2字节为mode(00h)
第3字节为status(00h)
第4字节为result_code=00h成功
=01h超时失败
=02hcrc校验失败
第5字节为info_LL(01h)
第6字节为info_LH(00h)
参数(0字节)
校验和(1字节)crc(xx)
③数据请求(Client端):
报头(6字节)第1字节为A_POLL(14h)
第2字节为frame_no(00--255)
第3字节为status=00h第一次请求召唤
=80h再次请求召唤
第4字节为result_code(00h)
第5字节为info_LL([nn+1]LL)
第6字节为info_LH([nn+1]LH)
参数(n字节信息正文)电量数据信息正文定义在后面
校验和(1字节)crc(xx)
④数据发送
发送端(server):
报头(6字节)第1字节为A_SEND(17h)
第2字节为frame_no(00--255)
第3字节为status=00h无后续帧
=01h有后续帧
=80h无后续帧,数据重发
=81h有后续帧,数据重发
第4字节为result_code(00h)
第5字节为info_LL([nn+1]LL)
第6字节为info_LH([nn+1]LH)
参数(n字节信息正文) 电量数据信息正文定义在后面
校验和(1字节)crc(xx)
接收端(Client):
报头(6字节)第1字节为A_SEND_ACK(18h)[连接成功]
或A_SEND_NAK(19h)[连接失败]
第2字节为frame_no(00--255)
第3字节为status(00h)
第4字节为result_code=00h成功
=01h超时失败
=02hcrc校验失败
=04h再次发送失败
第5字节为info_LL([nn+1]LL)
第6字节为info_LH([nn+1]LH)
参数(0字节信息正文,即无正文)
校验和(1字节)crc(xx)
电量数据信息正文定义:
数据请求端A_POOL电量数据信息正文定义
电量数据类型(EA_TYPE)
1字节
1:
底码值
2:
增量值
点索引号
2字节(查找索引表)
开始时间年
2字节,BCD码
开始时间月
1字节,BCD码
开始时间日
1字节,BCD码
开始时间时
1字节,BCD码
开始时间分
1字节,BCD码
结束时间年
2字节,BCD码
结束时间月
1字节,BCD码
结束时间日
1字节,BCD码
结束时间时
1字节,BCD码
结束时间分
1字节,BCD码
时间间隔
1字节(分钟)
数据发送包电量数据信息正文定义
电量数据类型(EA_TYPE)
1字节
点索引号
2字节
开始时间
6字节(同上)
结束时间
6字节(同上)
时间间隔(分钟)
1字节
电量值个数m
2字节
每个数据包最多发送288个数据。
值1的时间偏移(产生新时标)
2字节
=(时标—开始时间)/(60*时间间隔)
值1
4字节
对于增量值,将其*1000取整。
……
值n的时间偏移=
(值n时标—开始时间)/(60*时间间隔)
2字节
值n
4字节
4、界面设计
由于该系统主要是后台数据交换,因此界面比较少,主要是数据参数设置界面、发送数据界面、请求数据界面,分别如下:
参数设置界面:
在该界面中,对方IP表示对方主机IP;时间间隔表示请求数据的密度;起始时间和结束表示手动请求对方数据时间范围。
自动请求数据时间表示每天在该时刻向对方请求数据。
发送数据界面:
在该界面中启动“自动发送”按钮后,该系统能自动监听对方请求数据命令。
请求数据界面:
在该界面中“自动”按钮表示该系统每天在设定时刻向对象请求前一天的数据,“手动”表示该系统在指定时刻向对象请求参数界面中设定时间范围的数据。
四、实验软硬件环境
硬件环境:
CPU1G;内存1G;硬盘30G
软件环境:
windows操作系统。
五、实验步骤和方法
1.拷贝程序和数据库文件。
首先将CAST_client_server0722分别拷贝到自己的机器上,A还将wd1.dmp拷贝到d:
盘上;B还将wd2.dmp拷贝到d:
盘上;
2、建立数据库用户名,并将数据库文件导入到各自数据库中。
在oracle中建立用户wd1,密码wd1。
并授予dba权限。
将数据库文件wd1.dmp导入数据库。
操作命令如下:
(1)、进入cmd窗口下;
(2)、impwd1/wd1file=d:
\wd1.dmpfull=y
在oracle中建立用户wd2,密码wd2。
并授予dba权限。
将数据库文件wd2.dmp导入数据库。
操作命令如下:
(1)、进入cmd窗口下;
(2)、impwd2/wd2file=d:
\wd2.dmpfull=y
3、修改程序连接数据库文件ConnDBini.txt
进入CAST_client_server0722文件夹
//工作数据库连接串
WDIP=127.0.0.1
WDSID=****(改成数据库服务名)
WDUSER=wd1
WDPASSWORD=wd1
修改程序连接数据库文件ConnDBini.txt
//工作数据库连接串
WDIP=127.0.0.1
WDSID=****(改成数据库服务名)
WDUSER=wd2
WDPASSWORD=wd2
4、各自打开项目文件,运行程序。
5、将现有代码在eclipse中建立项目,然后在项目属性Libraries中添加externaljar:
**\实验一数据传输实验课程内容\安装程序\CAST_client_server.jar
要求:
1、对参数设置界面设计测试用例,并找出导致缺陷的代码。
六、实验预习要求
无。
七、评分标准
测试用例50分,找出代码缺陷50分。
实验二、性能测试:
loadrunner工具使用
一、实验目的
通过该实验让学生掌握根性能测试方法,并执行测试,记录执行结果,形成测试总结报告。
二、实验要求
熟练掌握性能测试工具Loadrunner的使用方法。
三、实验原理及内容
性能测试是指在一定约束条件下测试系统所能承受的并发用户量、运行时间及数据量,以确定系统所能承受的最大负载压力,保证产品发布后系统的性能能够满足用户需求。
性能测试的目的可以概括以下几个方面:
⏹在真实环境下检测系统性能,评估系统性能以及服务等级的满足情况;
⏹分析系统瓶颈、优化系统。
系统的并发性能是负载压力性能的最主要的组成部分,对于一个系统来讲,某些业务操作存在很多特定用户同时操作的可能性,或某一用户有大量数据需要系统处理的可能性。
例如,配变监测与用电管理系统中同时采集上万台终端数据,网上购物系统的订单提交,订票系统的票源查询,人力资源月末及年末报表上传,电信月末用户话费结算等,客户端大量的并发操作提高了网络的吞吐量,加剧了服务器资源互斥访问冲突,加大了数据库死锁的可能。
这样的负载压力轻则导致系统性能低下,重则对系统造成破坏,给用户带来经济损失。
因此并发性能的测试对于保证的系统的性能是非常关键的。
系统的性能包括两方面:
一方面是系统完成用户业务功能的响应时间,另一方面是系统实现用户业务功能时的资源利用率分析。
这里的资源指的是系统服务器和网络。
在执行与性能有关的测试时,通常要对所有的服务器、客户机和网络进行连续测试。
收集这些测试数据对获得正确的结果并分析缩放性至关重要。
(1)客户机
系统用户模拟多个用户访问网站,通常通过负载测试工具进行测试,可以使用测试参数(如用户数量)进行配置,从而得到响应时间的测试结果(最少/最多/平均)。
负载测试工具可以模拟处于不同层的用户,从而有效跟踪和报告响应时间。
此外,为了确保客户机没有过载,而且服务器上有足够的负载,应当监视客户机CPU的使用情况。
(2)服务器
对服务器性能测试数据收集的重点在这几个方面:
CPU,占全部处理器时间的百分比;内存,用字节数和每秒出现的页面错误率表示;硬盘的I/O。
(3)Web服务器
除了上述项目外,Web服务器还包括最大的同时连接数目。
(4)数据库服务器
所有数据库服务器都应当包含交易/秒和缓存命中率等数据。
(5)网络
监视每个服务器之间的带宽数据。
在实际性能测试过程中,并发负载压力的实施在客户端,负载压力的传输介质是网络,最终压力会到达后台各类服务器,包括数据库服务器、Web服务器、中间件服务器等。
所以在并发性能测试过程中,测试点包括客户端的性能,应用在网络上的性能以及应用在服务器上的性能。
我们进行性能测试的目的不仅要了解系统性能指标,而且要定位问题,找出系统瓶颈,因此我们要对系统中影响性能的各个部分进行监测。
LoadRunner是一种预测系统行为和性能的工业标准级负载测试工具。
通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。
通过使用LoadRunner,企业能最大限度地缩短测试时间、优化性能和加速应用系统的发布周期。
目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。
难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。
这些都不可避免地导致公司收益的损失。
LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。
LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助更快地查找和发现问题。
此外,LoadRunner能支持广泛的协议和技术,为测试的特殊环境提供特殊的解决方案。
该测试工具实际应用情况如图5-6所示。
该性能测试工具的组成部分有如下几个:
⏹虚拟用户脚本产生器Vugen(VirtualUserGenerator);
⏹压力调度和监控系统Conductor;
⏹压力产生器Player;
⏹压力结果分析工具Analysis。
四、实验软硬件环境
硬件环境:
CPU1G;内存1G;硬盘30G
软件环境:
windows操作系统
五、实验步骤和方法
1、LoadRunner性能测试解决方案
2、LoadRunner特点
●支持多种协议和API
●
能够对多种Server和资源进行监控
•Webservers
•Webapplicationservers
•Databaseservers
•Systemresources
3、LoadRunner工作流程
4、使用VuGen开发脚本
(1)使用VuGen开发脚本的步骤:
Ø录制测试脚本
Ø完善测试脚本
Ø配置Run-TimeSettings项
Ø单机运行测试脚本
Ø创建运行场景
(2)VuGen工作原理
(3)录制测试脚本
新建一个用户脚本,选择系统通讯的协议,这里我们需要测试的是Web应用,所以我们需要选Web(HTTP/HTML)协议,确定后,进入主窗体。
(4)设置录制选项
ØApplicationtype中选择应用程序类型InternetApplication
ØURL中输入要测试的网址
ØWorkingdirectory中设置工作目录
ØRecordintoAction中选择要把录制的脚本放到哪一个部分,建议选择Action
ØVuGen中的脚本分为三部分:
vuser_init、vuser_end和Action。
其中vuser_init和vuser_end都只能存在一个,不能再分割,而Action还可以分成无数多个部分(通过点击New按钮,新建ActionXXX)
(5)录制工具条
(6)执行一个业务流程
(7)VirtualUser回放模式
(7)AboutActionFiles
•每一步表式一个操作
–用户的实际操作
–一个LoadRunner的“事务*”或者是“确认检查点*”
(8)查看脚本
录制结束后,可以通过两种方式来查看脚本:
脚本视图及树视图
Ø脚本视图
脚本视图是一种基于文本的视图,列出了作为API函数的Vuser操作。
要在脚本视图中查看脚本,请单击工具栏上的“ViewScript”按钮或者选择“View”>“ViewScript”。
在脚本视图中,VuGen将在编辑器中显示带有彩色编码的函数及其变量值的脚本。
Ø树视图
树视图是基于图标的视图,列出了作为步骤的Vuser操作.要在树视图中查看脚本,请单击工具栏上的“ViewTree”按钮或者选择“View”>“ViewTree”。
对于录制期间所执行的每一步骤,VuGen都在测试树中生成一个图标和一个标题。
在树视图中,将看到作脚本步骤的用户操作。
大多数步骤都附带相应的录制快照。
(9)ThinkTimes
•模拟用户在实际操作时使用的时间。
在实际中,用户进行一系列操作后往往会进行处理,例如浏览网页,而处理过程对服务器是没有压力的。
•录制过程中由VuGen插入
(10)树型图中对录制的步骤重命名
提高录制脚本的可读性:
●选择一个步骤
●右键单击步骤图标
●在弹出菜单中选择“属性”菜单项
●选择“General”属性页
●将缺省步骤名改为意义更明确的名称
(11)虚拟用户“Run-time”设置
普通设置
•回放时显示页面
•提示结果保存目录
•回放时保存关联信息
•设置页面快照比较方式
(12)“Run-Time”设置
•建立一个结果日志文件
•将日志记录方式设置为标准
(13)回放ActionFile
(14)确认虚拟用户正确执行
(15)查看测试结果
(16)检查回放时访问的Web页面是否正确
(17)检查执行日志
5、编辑脚本
(1)检查点
在进行压力测试时,为了检查Web服务器返回的网页是否正确,VuGen允许我们插入Text/Imag检查点,这些检查点验证网页上是否存在指定的Text或者Imag,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。
以下是插入检查点的步骤及检查点在脚本中的函数表示。
(2)参数化-脚本参数化概述
如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。
这些操作都被记录到了脚本中。
当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际的运行情况,而且有可能引起冲突。
为了更加真实的模拟实际环境,需要各种各样的输入。
参数化输入是一种不错的方法。
用参数表示用户的脚本有两个优点:
v可以使脚本的长度变短
v可以使用不同的数值来测试脚本
参数化包含以下两项任务:
v在脚本中用参数取代常量值
v设置参数的属性以及数据源
(3)集合点(Rendezvous)
集合点是为了衡量在加重负载的情况下服务器的性能情况。
在测试计划中,可能会要求系统能够承受1000人同时提交数据,在LoadRunner中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner就会检查同时有多少用户运行到集合点,如果不到1000人,LoadRunner就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000人时,LoadRunner命令1000人同时去提交数据,从而达到测试计划中的需求。
注意:
集合点经常和事务结合起来使用。
集合点只能插入到Action部分,vuser_init和vuser_end中不能插入集合点。
插入集合点方法:
●在需要插入集合点的前面,选择菜单Insert->Rendezvous。
●在弹出的Rendzvous对话框中,输入要插入的集合点的名称,点击OK后,集合点插入完毕。
集合点在脚本中的代码:
lr_rendezvous(“名称”)
如果在脚本中设置了集合点,还需要在Controller中设置集合点策略,从菜单中调出集合点策略设置窗口,根据需求设置集合点策略。
(4)事务(Transaction)
当录制完一个基本的用户脚本后,在正式使用前我们还需要完善测试脚本,增强脚本的灵活性。
例如,可以在脚本中插入名为内容检查的步骤,以验证某些特定内容是否显示在返回页上。
可以修改脚本来模拟多用户行为,也可以用事务来度量特定的业务流程。
事务(Transaction):
为了衡量服务器的性能,我们需要定义事务。
比如:
我们在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个事务,这样在运行测试脚本时,Load
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 实验 指导书 课件