报告正文模版自动化测试技术.docx
- 文档编号:12730384
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:18
- 大小:1.17MB
报告正文模版自动化测试技术.docx
《报告正文模版自动化测试技术.docx》由会员分享,可在线阅读,更多相关《报告正文模版自动化测试技术.docx(18页珍藏版)》请在冰豆网上搜索。
报告正文模版自动化测试技术
目 录
一、前言(课设目的及内容)
本次测试的对象是QTP自带的FlightReservation小飞机程序的用户登录和订单按照时间查询
使用QuickTest可以加速整个测试的过程,并且建置完新版本的应用程序或网站后,可以重复使用测试脚本进行测试。
以QuickTest执行测试,就与人工测试一样。
QuickTest会仿真鼠标的动作与键盘的输入,不过QuickTest比人工测试快乐很多。
QuickTest自动化的好处有:
快速:
QuickTest执行测试比人工测试速度快多了。
可靠:
QuickTest每一次的测试都可以正确的执行相同的动作,可以避免人工的错误。
可重复:
QuickTest可以重复执行相同的测试。
可程序化:
QuickTest可以以程序的方式,撰写复杂的测试脚本,以带出隐藏在应用程序中的信息。
广泛性:
QuickTest可以建立广泛的测试脚本,涵盖应用程序的所有功能。
可再使用:
QuickTest可以重复使用测试脚本,即使应用程序的使用接都已经改变。
测试脚本的开发和维护是自动化测试的重要环节,适当地调整和增强测试脚本,能提高测试脚本的灵活性,增加测试覆盖面,以及提高应对测试对象变更的能力。
数据驱动方式的测试脚本开发是解决这类问题的重要手段。
本次课设介绍如何在自动化测试过程中使用数据驱动的测试脚本开发方式,对测试脚本进行参数化,包括如何使用QTQTPP的DataTable参数化、Action参数化的方法。
自动化测试对录制和编辑好的测试步骤进行回放,这种是线性的自动化测试方式,其缺点是明显的,就是其测试覆盖面比较低。
测试回放的只是录制时做出的界面操作,以及输入的测试数据,或者是脚本编辑时指定的界面操作和测试数据。
二、测试需求和测试用例
2.1登陆实例
登陆实例是指登陆FlightReservation应用程序,该实例是操作飞机订票系统的入口程序,只有登录成功才能订票。
首先要添加小飞机程序为指定在Windows中打开的应用程序,如图2.1.1。
图2.1.1
由用户图形界面可以看出,如图2.1.2登陆界面的主要输入变量是AgentName和Password,所以在设计测试用例时主要考虑对这两个输入参数设计测试用例
图2.1.2
在用户登录的图形界面中单击Help按钮,会弹出如图2.1.3提示框,并且AgentName必须为至少为4的字符串如图2.1.4
图2.1.3输入密码不是mercury
图2.1.4用户名长度少于4
2.2设计测试用例
表2.1.1
用户名
密码
操作
期望系统提示
测试数据
空
空
点击登录
请输入用户名
(null,null)
长度大于或等于4的任意字符串
空
点击登录
请输入密码
(pengyong,null)
长度大于或等于4的任意字符串
MERCURY
点击登录
登陆成功
(pengyong,MERCURY)
长度大于或等于4的任意字符串
123456
点击登录
密码不正确,请输入正确的密码
(pengyong,123456)
输入长度小于四的任意字符串
MERCURY
点击登录
请输入长度至少为4的字符串
(py,MERCURY)
输入长度小于四的任意字符串
123456
点击登录
请输入长度至少为4的字符串
(py,123456)
图2.2.1测试用例
2.3查询订单时间
当输入错误的查询日期可能会出现下列五种提示框:
图2.2.2查询成功
图2.2.3查询日期无订单
图2.2.4查询月份不存在
图2.2.5查询月份对应的日期不存在
2.4测试用例设计
表2.3.1测试用例
日期
预期提示
测试用例
正常日期(存在订单的日期)
显示正常查询结果
121216
不存在订单的日期
该日期不存在订单
111111
月份超出正常月份
月份应该在1-12
131216
日期超出正常月份对应的天数
该月份不存在此日期
123216
日期为空
日期不能为空
图2.3.1QueryTime表格
三、测试脚本开发
3.1用户名和密码参数化测试脚本
Dialog("Login").WinEdit("AgentName:
").SetDataTable("UserName",dtGlobalSheet)
Dialog("Login").WinEdit("Password:
").SetSecureDataTable("PWD",dtGlobalSheet)
Dialog("Login").WinButton("OK").Click
flag=Dialog("Login").Dialog("FlightReservations").WinButton("确定").Exist(0.1)
Ifflag=trueThen
Dialog("Login").Dialog("FlightReservations").WinButton("确定").Click
else
Window("FlightReservation").Close
SystemUtil.Run"C:
\ProgramFiles\HP\UnifiedFunctionalTesting\samples\flight\app\flight4a.exe"
EndIf
分析与感悟:
用户名和密码的参数化相对而言是一个比较简单参数化测试,因为它的测试开始界面和结束界面比较容易确定业务比较简单。
开始界面就是登陆,结束界面就是显示的填写订单的界面。
所以测试时只需要将同户名或者密码错误的界面添加到对象库中,并把此界面设置为标记。
一旦这个界面出现则表示信息错误,否则就关闭订单填写的界面重新打开小飞机程序执行下一条用例。
3.2查询订单时间参数化脚本
Dialog("Login").WinEdit("AgentName:
").Set"test"
Dialog("Login").WinEdit("Password:
").SetSecure"576d1624515b18e35862b8d12f5e20a78fabed82"
Dialog("Login").WinButton("OK").Click
Window("FlightReservation").WinButton("Button").Click
Window("FlightReservation").Dialog("OpenOrder").WinCheckBox("FlightDate").Set"ON"
Window("FlightReservation").Dialog("OpenOrder").ActiveX("MaskEdBox").TypeDataTable("QueryTime",dtGlobalSheet)
Window("FlightReservation").Dialog("OpenOrder").WinButton("OK").Click
'Window("FlightReservation").Dialog("OpenOrder").Dialog("SearchResults").WinButton("OK").Click
'Window("FlightReservation").Close
flag=Window("FlightReservation").Dialog("OpenOrder").Dialog("SearchResults").WinButton("OK").Exist(0.1)
Ifflag=trueThen
Window("FlightReservation").Dialog("OpenOrder").Dialog("SearchResults").WinButton("OK").Click
Window("FlightReservation").Close
SystemUtil.Run"C:
\ProgramFiles\HP\UnifiedFunctionalTesting\samples\flight\app\flight4a.exe"
else
Window("FlightReservation").Dialog("OpenOrder").Dialog("FlightReservations").Close
Window("FlightReservation").Dialog("OpenOrder").Close
Window("FlightReservation").Close
SystemUtil.Run"C:
\ProgramFiles\HP\UnifiedFunctionalTesting\samples\flight\app\flight4a.exe"
EndIf
分析与感悟:
订单查询时间的参数化相对而言更复杂一些,因为它的结束情况有两种,所以要进行分析。
将查询成功的订单信息信息界面设置为标记。
如果标记出现则意味着查询成功,如果要继续执行下一条用例就必须关闭查询结果窗口,然后关闭查询订单窗口,关闭订单填写窗口并且重新打开一个小飞机程序。
如果查询失败,则首先要关闭的是提示错误信息的窗口,然后关闭查询订单窗口,最后关闭订单填写窗口,再重新打开一个小飞机程序。
3.3订单编号检查点脚本
Dialog("Login").WinEdit("AgentName:
").Set"pengyong"
Dialog("Login").WinEdit("Password:
").SetSecure"395c6727ca888ab0c3f17810f2b6c38021d362b0"
Dialog("Login").WinButton("OK").Click
Window("FlightReservation").WinObject("DateofFlight:
").Type"121216"
Window("FlightReservation").WinComboBox("FlyFrom:
").Select"Denver"
Window("FlightReservation").WinComboBox("FlyTo:
").Select"Frankfurt"
Window("FlightReservation").WinButton("FLIGHT").Click
Window("FlightReservation").Dialog("FlightsTable").WinList("From").Select"15878DEN08:
00AMFRA11:
30AMAF$172.47"
Window("FlightReservation").Dialog("FlightsTable").WinButton("OK").Click
Window("FlightReservation").WinEdit("Name:
").Set"ppp"
Window("FlightReservation").WinButton("InsertOrder").Click
Window("FlightReservation").WinEdit("OrderNo:
").CheckCheckPoint("OrderNo:
")
Window("FlightReservation").Close
分析与感悟:
订单编号的检查点,要避免出现对检查定编号的确定花检查,也就是说不能以上一次插入时的编号作为检查点,因为当脚本回放的时候系统会再次插入一条订单信息。
所以此时的编号已经变了,所以要用正则表达式来作为检查点的限制条件。
四、测试结果分析
4.1用户登录参数化
4.1.1用户名参数化
4.1.2密码参数化
4.1.3脚本回放结果
4.2测试用例的执行
表4.2.1
AgentName
Password
测试结果
null
null
pengyong
null
pengyong
MERCURY
pengyong
123456
py
MERCURY
py
123456
4.3查询订单时间参数化
图4.3.1查询时间参数化
4.4测试用例的执行
测试编号
测试用例
测试结果
QT-1
121216
QT-2
111111
QT-3
131216
QT-4
123216
QT-5
六个空格
*回放脚本的时候要注意取消飞机订票程序的自启
图4.4.1回放注意点
图4.4.2查询时间参数化结果
4.5订单编号_检查点
4.5.1插入检查点
首先录制一段提交订单的脚本,在ActiveScreen界面中找到FlightReservation页面中的OrderNo,右键选择插入StandardCheckpoint。
图5.4.1插入检查点
在专家视图(expertView)中找到OrderNo,右键,会出现如下图,并且编辑勾选RegularExpression,在文本框中填入如下数据,但是值得注意的是,Enable前面的复选框不需要勾选,否则会出错。
图5.4.2检查点正则表达式
图5.4.3注意的地方
脚本回放结果和OrderNo中读出的数据
图5.4.4回放结果
图5.4.5检查点得出的结果
五、效益分析
在这次的自动化课程设计实践过程中,我选择测试的功能点事登陆和订单按时间查询和订单编号。
在脚本录制和回放测试的过程中我发现运用了参数化之后节省了不少的时间。
就比如用户名和密码的参数化自动化测试,我设置了六组测试用例,在编写好脚本之后用参数化执行脚本花费的还见可能只是一分钟不到,因为在脚本中设置好了脚本回放的开始界面和结束界面,在六次循环中不需要我手动打开界面,软件会自动打开和关闭不需要的界面。
如果需要手动执行这六个用例花费的时间可能是这个的几倍。
因为用例少,可能相差的时间也不会特别多,但是一旦用例达到一定的数量,手动测试和自动化测试的时间差就会很明显。
所以参数化在自动化测试中扮演很重要的角色。
自动化测试的意义:
1.大大缩短回归测试项目的时间,在减少了人力投入的同时,更能保证研发项目能按时市场发布。
甚至能缩短研发周期,提前发布产品。
2.在同样的产品研发时间内,能对产品进行更全面的多次测试,将新引入的问题尽可能的在产品发布前挖掘出来。
3.能保障回归测试的质量。
因为每次自动化回归测试都是保持同一个标准的步骤,环境和测试方法。
所以测试结果具有一致性。
4.让更有经验的测试工程师从回归测试中解放出来,专注于新的测试方法的研究,来发现更多产品深层次的问题。
5.减少测试工程师人数,降低研发成本。
因为实施自动化回归测试后,厂商就不用像以前一样保留一定的人力来专职进行回归测试。
6.能避免测试人力和时间的紧张,而降低了回归测试的质量要求,导致引入了新问题而未被发现。
7.没有在手工回归测试中因为测试工作的重复性和测试工程师对已测过功能的过于自信,而导致测试覆盖面不全,新引入问题没被发现的人为隐患。
8.避免了部分工程师非主观的疏忽大意,没有发现新引入的问题。
六、课设小结及心得体会
这次课程设计过程中我遇到了不少问题,之所以会出现这些问题还是因为平时上课的认真程度不够。
但是经过老师细心的指导和同学的帮助,通过不断的练习终于把一个个问题解决,并且深入理解并掌握了知识点。
感谢他们的帮助和自己的努力。
在此期间我深刻的认识到了QTP作为一款自动化测试工具的显著优势,简单地说,使用QTP可以加速整个测试过程,并且避免了一些繁琐的步骤的重复,而且最终的结果是跟手工测试的结果是一样的,因此省去了人力成本,而且提高了效益。
在课设的设计过程中,我是结合老师上课的PPT练习对功能点的测试,然后自己拓展开,根据老师在PPT中给定的测试代码进行改,当然在这个过程中我是遇到了很多问题的。
比如更改Flag所代表的录制状态,但是并没有将窗体或者对话框加入到对象库,到时脚本回放的时候一直提示找不到对象,起初还不知道怎么解决。
后来在自己的不断琢磨中,我解决了这个问题。
还有一个印象比较深刻的就是怎样确定录制和回放过程中的开始状态和结束状态。
一开始因为这个没有处理好导致回放脚本时,打开多个窗口,导致脚本回放出现故障。
经过这次课设的经历,我懂得了以后处理问题要考虑的更全面,不能只注意到问题的一个点,要根据出现的问题去思考去拓展,要知道以后遇到问题该怎么解决。
虽然课设并不是做的很高大上,但是也是我收获的一个体现。
在今后的测试工作中我一定会更加认真,更加努力的。
七、参考文献
[1]《软件测试技术》,贺平编著,机械工业出版社,2004年
[2]《QTP从实践到精通》,田艳琴编著,电子工业出版社,2010年
[3]《软件测试管理》,吴新泽编著,人民邮电出版社,2007年
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 报告正文模版 自动化测试技术 报告 正文 模版 自动化 测试 技术