自动化测试课程设计.docx
《自动化测试课程设计.docx》由会员分享,可在线阅读,更多相关《自动化测试课程设计.docx(20页珍藏版)》请在冰豆网上搜索。
![自动化测试课程设计.docx](https://file1.bdocx.com/fileroot1/2023-6/28/3476de75-bd59-4438-9a6a-f3cfe17512d5/3476de75-bd59-4438-9a6a-f3cfe17512d51.gif)
自动化测试课程设计
目 录
一、前言(课设目的及内容)1
1.1课设目的1
1.2课设内容1
二、测试计划及测试需求2
2.1测试原理分析2
2.2测试思想设计2
2.3测试计划设计3
2.4测试环境搭建4
三、测试用例的设计5
3.1登陆测试用例设计5
3.2订票测试用例设计8
四、测试过程9
4.1登陆测试过程9
4.2订票测试过程10
五、测试结果分析16
5.1测试结果16
5.2测试结果分析20
六、课设小结及心得体会23
七、参考文献24
一、前言(课设目的及内容)
1.1课设目的
(1)使学生能掌握网站功能测试的基本思路和方法,学会使用自动化测试工具QTP进行功能测试;
(2)培养学生分析、解决问题的能力;
(3)提高学生的科技论文写作能力。
1.2课设内容
(1)对默认环境和条件(要求详细记录环境条件)下,构造正确的输入进行正常功能需求的测试,使用常见的检查点测试,并将输入进行参数化;
(2)测试系统在异常环境下的功能需求变化,并对测试的结果进行分析和汇总;
(3)相应驱动的编写;
(4)在基本要求达到后,可对被测系统进行探索性测试。
二、测试计划及测试需求
2.1测试原理分析
QTP主要采用的是使用GUI模拟人的操作。
它在模拟人的操作时会记录操作的对象及所做的操作和顺序,然后在回放时按记录顺序操作这些对象。
而在这个模拟的过程中,最重要的莫过于界面对象(控件)的识别。
首先,QTP会通过“用户名输入框”这个名字到对象库的对象名中查找;
然后通过找到的对象名,找到对象名映射的属性包;
接着QTP就会通过这个属性包来匹配页面上的控件的属性,如果在页面上找到一个唯一与此属性包匹配的控件,那QTP就会认为此控件为要找的控件;
最后QTP根据“WebEdit”来确定控件的类型,并调用QTP对于此类控件内置的操作方法“Set”把“**值”赋予了控件。
至于其他控件的识别和操作,基本原理和上面一样。
2.2测试思想设计
根据测试原理的分析以及QTP测试的基本步骤可以设计如图2.2.1的测试思想流程图。
该流程图使用MicrosoftVisio2003绘制。
图2.2.1测试思想流程图
2.3测试计划设计
根据测试原理分析与测试思想设计,使用MicrosoftVisio2003设计如图2.3.1所示的测试过程计划流程图。
图2.3.1测试过程计划流程图
2.4测试环境搭建
操作系统:
Windows7
浏览器:
InternetExplorer
软件:
QuickTestProfessional9.2
其他软件需求:
MicrosoftVisio2003和MicrosoftWord2010
三、测试用例的设计
3.1登陆测试用例设计
针对登录模块的输入条件:
用户名和密码,有以下几种情况:
1.当用户什么也没输入,直接点OK按钮,是否提示请输入用户名;
2.当用户输入正确的用户名,没输入密码,直接点击OK按钮,是否提示请输入密码;
3.对密码进行验证看是否设置输入密码的长度;
4.当输入正确的用户名和密码时,点击OK按钮是否进入操作界面;
对登陆模块进行测试时,尽可能全面的测试登陆功能的正常和异常情况:
只要用户名大于或等于4个字符,密码是“mercury”,即可登陆。
为了测试异常登陆,准备了异常登陆的测试数据,系统会弹出如下表(3.1.1)所示的提示信息。
表3.1.1
测试数据
应用程序弹出的异常提示
用户名
密码
空
空
空
错误
空
mercury
lhh
空
lhh
mercury
lhh
错误
admin
空
admin
错误
admin
mercury
正常登陆,启动程序
根据上面的分析,设计了如下表(3.1.2)的测试用例:
表3.1.2
ID
输入条件
预期输出
实际输出
用户名
密码
001
空
空
提示:
输入用户名
提示:
输入用户名
002
空
aaaaa
提示:
输入用户名
提示:
输入用户名
003
空
mercury
提示:
输入用户名
提示:
输入用户名
004
lhh
空
提示:
用户名长度少于4位
提示:
用户名长度少于4位
005
lhh
aaaaa
提示:
用户名长度少于4位
提示:
用户名长度少于4位
006
lhh
mercury
提示:
用户名长度少于4位
提示:
用户名长度少于4位
007
admin
空
提示:
输入密码
提示:
输入密码
008
admin
aa
提示:
密码错误
提示:
密码错误
009
admin
mercury
登录成功
登录成功
010
aaaaa
mercury
登录成功
登录成功
3.2订票测试用例设计
订票实例的前提是登录订票系统成功,该实例是在订票系统中进行订票操作:
输入航班日期、选择起飞地、选择目的地、选择航班、输入顾客姓名、输入票的张数、选择航班级别、单击订票按钮,完成订票功能。
表3.2.1
测试编号
输入
预期结果
实际结果
001
空
在Fly中选择一个地点,弹出警告信息
不能为空的警告
002
07/02/13
在Fly中选择一个地点,弹出警告信息
日期要在今天之后
003
13/10/13
在Fly中选择一个地点,弹出警告信息
月份要小于13
004
07/32/13
在Fly中选择一个地点,弹出警告信息
天要在1-31之间
005
11/31/13
在Fly中选择一个地点,弹出警告信息
天要在1-30之间
006
07/07/13
正确
007
空
在FlyTo中选择一个地点,弹出警告信息
FF不能为空的警告
008
LosAngeles
正确
成功
009
空
Flights按钮不可用
成功
010
LosAngeles
Flights按钮可用
成功
011
单击,选择16927航班
在窗口显示航班信息
出发点为LON,目的地为LAX
012
在FF中改选Paris
清空航班信息,Flights按钮不可用,FT自动清空
成功
013
刘红华,1,Economy
Price:
$123.20
Total:
$123.20
出发点为London,目的地为LosAngeles,选择16927航班
014
刘红华,2,Economy
Price:
$123.20
Total:
$246.40
成功
四、测试过程
4.1登陆测试过程
第一步:
用QTP自动打开FlightReservation系统的登陆界面,输入用户名和密码,确定当前的操作,将订票系统打开,登陆界面如图(4.1.1);
图4.1.1
第二步:
在QTP主界面中单击“Record”,在登陆界面的文本框中,输入正确的用户名和密码,单击“OK”按钮,进入飞机订票系统界面。
在QTP主界面,单击“Stop”按钮,结束当前的录制,如图(4.1.2);
图4.1.2
录制的脚本为:
Dialog("Login").Activate
Dialog("Login").Activate
Dialog("Login").WinEdit("AgentName:
").Set"admin"
Dialog("Login").WinEdit("AgentName:
").TypemicTab
Dialog("Login").Activate
Dialog("Login").WinEdit("Password:
").SetSecure"51d27b3189e7127ee662fac17b2b30ee5835e77f"
Dialog("Login").WinButton("OK").Click
Window("FlightReservation").Activate
第三步:
在QTP主界面的工具栏中单击“Run”按钮,回访脚本,测试报告的结果如下图(4.1.3);
图4.1.3
4.2订票测试过程
第一步:
录制脚本,选择“Record”如图(4.2.1);
图4.2.1
第二步:
在AgentNname和Password中输入admin和mercury,点击“OK”按钮,如图(4.2.2);
图4.2.2
第三步:
输入飞机的时间、出发地、目的地,然后选择“Flights”选择航班,如图(4.2.3);
图4.2.3
第四步:
选择要乘坐飞机的航班,然后点击确定,如图(4.2.4);
图4.2.4
第五步:
输入顾客的姓名、票数、票的类型、点击“insertOrder”,如图(4.2.5);
图4.2.5
第六步:
点击“Stop”结束录制过程,脚本录制成功,如图(4.2.6);
图4.2.6
第七步:
在容易出错的点上右击鼠标,选择“InsertStandardCheckpoint”,如图(4.2.7);
图4.2.7
第八步:
点击“确定”,如图(4.2.8);
图4.2.8
检查点如下图(4.2.9);
图4.2.9
脚本如下:
Dialog("Login").WinEdit("AgentName:
").Set"admin"
Dialog("Login").WinEdit("Password:
").SetSecure"51d2be3064eb1ca28b559aa50fac11e1fd9eee60"
Dialog("Login").WinButton("OK").CheckCheckPoint("OK")
Dialog("Login").WinButton("OK").Click
Window("FlightReservation").WinObject("DateofFlight:
").Type"070713"
第九步:
在QTP主界面的工具栏中单击“Run”按钮,回访脚本,测试报告的结果如下图(4.2.10);
图4.2.10
五、测试结果分析
5.1测试结果
通过运用QTP对飞机订票系统的测试,将已设计好的测试用例添加到QTP中,通过脚本的参数化设置,对测试用例进行自动化循环测试,如下图(5.1.1);
图5.1.1
结果运行发现问题如下:
图5.1.2
Summary如下:
图5.1.3
经过思考发现问题可能出现在以下方面,所以在专家视图中添加了如下图(5.1.4)所示的代码之后问题就解决了。
图5.1.4
(1)QTP对测试用例的自动化测试后,分别将可以登陆成功和不能登陆成功的测试用例进行测试,运行结果如图(5.1.5);
图5.1.5
(2)不可以登录飞机订票系统的测试用例,QTP在测试后会显示登录失败,并且会说明错误的信息,如下图(5.1.6);
图5.1.6
(3)修改错误之后,可以登录飞机订票系统,QTP在测试后会显示登陆成功,如下图(5.1.7、5.1.8);
图5.1.7
图5.1.8
(4)订票成功之后还可以退订,如下图(5.1.9、5.1.10);
图5.1.9
图5.1.10
5.2测试结果分析
(1)测试中在insertorder之后updateorder之前需要插入一个同步点以保证程序正常运行不出现问题,如下所示:
图5.2.1
图5.2.2
(2)测试中orderNo文本框的内容需要进行检验,以防止插入数据库异常,特做了对文本框text的处理,对其值用正则表达式(“[0-9]+”)进行检查之后,如果符合要求则正常运行,否则报错。
图5.2.3
(3)对于增强脚本第一次回放时,因为使用了脚本的参数化设置,对测试用例进行自动化循环测试,结果出现的问题是可以理解的。
因为在datatable第一行数据做完处理后,立即进行第二行的访问,对象库查询出现问题,可能需要给点等待时间,以便对对象库进行检索,于是就添加代码(“wait2”),让程序在访问完datatable第一行数据后,等待2s再对第二行进行访问处理。
六、课设小结及心得体会
通过本次课程设计实验让我更加深刻的领会了自动化测试技术的内涵,同时掌握了QTP工具的使用。
对QTP测试流程更加熟练,同时在测试时编写测试用例同样让我掌握了用例设计的方法和步骤。
还有对QTP测试使用时遇到的各种问题通过各种方法一一解决。
测试时还使用了屏幕录制专家进行录制屏幕,这也无形中让我学会了使用屏幕录制专家这款优秀软件!
总的来说通过本次课程设计提高了分析问题,解决问题和动手操作能力,同时也提高了创新能力,是一次很有价值,很有用的实验,为今后学习打下了更加牢固的基础。
然而,通过这次实验,我也发现了自己的一些不足,由于原来上课没有把握机会问老师问题,导致很多问题不理解,虽然课后有视频教程,但缺乏互动性,远远没有达到应有的程度,只能靠自己慢慢的摸索,但难免走了好多弯路。
而且平时的缺乏对于这些工具的利用,使得面对如此多的按钮却不知从何做起。
这也是给自己一个警示,想要学好任何一门知识或者工具,都要花大量精力去钻研,没有努力就没有收获。
不过总的来说,还是要感谢严丽平老师的指导和同学的帮助,才能使我顺利完成这次课程设计,再次感谢所有帮助我的人!
七、参考文献
[1]陈绍英等.《LoadRunner性能测试实战》.电子工业出版社
[2]张瑾,杜春晖.自动化软件测试[M].北京:
机械工业出版社,2008
[3]黄文高.QTP自动化测试与框架模型设计[M].北京:
机械工业出版社,2011
[4]田艳琴.QTP从实践到精通[M].北京:
电子工业出版社,2010
[5]忽略:
//
[6]柳胜.《软件自动化测试框架设计与实践》.北京:
人民邮电出版社,2009.11
[7]陈能技.《QTP自动化测试实践》.北京:
电子工业出版社,2008.6
........忽略此处.......