自动化测试工具QTP的参数化.docx_第1页
自动化测试工具QTP的参数化.docx_第2页
自动化测试工具QTP的参数化.docx_第3页
自动化测试工具QTP的参数化.docx_第4页
自动化测试工具QTP的参数化.docx_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自动化测试工具QTP的参数化一在测试应用程序时,因为设计测试用例的需要,我们可能要对一系列操作过程进行重复测试,当然在测试的过程中可能采用一组从不同角度设计的数据,那么QTP为了解决这类问题,不需要测试者将这一系列相同的操作过程重复多次,而只需将需要变化的数据进行参数化,通过脚本设置使得脚本在运行时循环一次取参数化中的不同数据,让程序在不同数据驱动下自动执行多次,所以参数化是自动化测试工具的一个技巧,也是测试者必须掌握的知识。QTP的参数化测试流程下面我们通过举例来看一下QTP如何实现参数化测试,这里就以一个登录窗口功能测试参数话的过程:1. 设计测试用例我们设计以下四个测试用例用来检验登陆功能的实现:用例1:用户名正确,密码不正确,输出为“对不起,您的密码不正确”用例2:用户名为空,密码不正确,输出为“请您输入正确的用户名”用例3:用户名正确,密码为空,输出为“请您输入正确的密码”用例4:用户名正确,密码正确,正常登陆2. 录制脚本,通过运行QTP登陆,录制正常的业务流程,以用户名为hhh,密码为111登陆。(WEB协议),保存脚本。3. 参数化脚本变量,在树图窗口中找到用户名变量,点右键,通过设置将登陆用户名参数化为mail_name,将登陆用户的密码变量参数化为m a i l _ p a s s w o r d ,datatable选本地表。4. 为了比较预期输出值与实际输出值是否一样,我们需要将预期输出值用一个变量通过循环依次取出来进行比较,因此可以在datatable中创建一个存储预期输出值的列out_st.5. 按照功能测试的测试策略进行测试用例的设计, 并在datatable中输入mail_name,mail_password,out_st的值.6. 下面我们就可以通过VBScript的脚本来对脚本进行修改,使流程按照我们的要求进行运行,切换到专家视图,在脚本最前面创建相应的量为了依次能够访问到表格中的每一个测试用例的具体值,必须创建一个表示datatable表中行号的变量i。7. 用for或if语句实现循环,使得QTP在运行脚本时能够通过循环依次读取表中每一个用户名。8. 为了得到实际输出结果,必须在脚本中插入文本输出点,用来输出系统运行时输出的实际信息, 并将结果保存到本地表DATATABLE中的out_msg列。( 新生成一列)。9. 定义一个能够读取datatable表中out_msg列数据的变量out_value, 提取out_ms列数据放入变量out_value变量中。再定义一个读datatable表中out_st列数据的变量out_is, 提取out_st列数据放入变量out_is变量中。(提示:实际上这是程序实际运行结果和程序预期输出结果)。10. 为了便于测试结果的分析,在脚本代码中增加语句用来输出如果系统实际运行结果与测试用例预期运行结果不相同时的提示信息。为了取下一个测试用例的数据,在FOR循环中加入一条netx语句,以便读取datatable表中下一行数据。11. 执行脚本,修改语法错误,至通过,根据测试结果进行功能分析。最后, 我们为了测试的目的性更强一点, 可以通过插入检查点的方式来强化脚本,在本例中可以通过插入文本检查点和网页检查点的方式来检验当不能正常登陆时出现的文字与正常登陆时出现的文字与网页的不同来进行比较。当然我们还可以通过测试结果窗口显示的信息和界面来对该功能的实现进行对应的分析并写出测试报告。二 下面通过实例来介绍一下QTP实例化常用的两种方法(在这个过程中功能我会用实例来讲解一下)第一种针对输入的参数话目标如下:1 . 脚本需要处理成功和失败的用户的登陆2. 数据驱动设计开发脚本如下:第一步录制脚本如下Browser(监狱管理系统).Page(监狱管理系统).WebEdit(txtLoginName).Set 张三Browser(监狱管理系统).Page(监狱管理系统).WebButton(登 录).set Browser(监狱管理系统).Page(Page).SynBrowser(监狱管理系统).Close以上为录制的正确的用户名,下边录制错误的用户名Browser(监狱管理系统).Page(监狱管理系统).WebEdit(txtLoginName).Set xxBrowser(监狱管理系统).Page(监狱管理系统).WebButton(登 录).set 出现错误提示“该用户不存在”第二步 增强脚本现在需要设计的是一套脚本驱动所有的测试数据,这样可以驱动所有的用例数据,qtp中提供了datatable。但是有数据驱动也要做一个事情就是如何处理错误的用户名和正确的用户名,如何结合起来呢?这里我把datatable看作存放测试用例的地方,里面放入测试数据,还放入测试的预期结果。这样我的设计已经出现雏形了。我把datatable设计为三列username password status张三 123 该用户不能为空第三列放入最后执行的结果,我设计的是空为成功登陆,如果有信息就用实际运行的结果和这一列对比。修改脚本如下:Dim iStatusBrowser(监狱管理系统).Page(监狱管理系统).WebEdit(txtLoginName).Set DataTable(username, dtLocalSheet)Browser(监狱管理系统).Page(监狱管理系统).WebButton(登 录).set DataTable(password, dtLocalSheet)iStatus = DataTable(status, dtLocalSheet)If iStatus= Then Browser(监狱管理系统).CloseEnd IfIf iStatus=该用户不存在 Then Reporter.ReportEvent micFail, 登陆, 登陆失败.End IfBrowser(监狱管理系统).Close第三步,设置脚本运行过程打开 tests-settings设置RUN TAB页面下 Datatable iterations中 Run On all rows这样就完成了整个脚本的设计工作,以上通过一个简单例子吧脚本的设计和软件的功能结合起来,达成脚本的设计效果。下面是我用都联网系统作为例子进行的脚本加强的例子上图这个是都联网正常登录之后录制的脚本。上图是都联网错误登录的录制脚本(弹出用户名或者密码错误)下图是经过加强之后的录制脚本: select选择值的参数化在不更改对象库的基础上上,运用SetTOProperty函数方法来达到同样的效果 例: 录制打开百度搜索主页,输入,点击搜索按纽,进入搜索后的页面,随便打开其中一个连接,然后关闭网页录制脚本如下: 现在我想做的是,能测试搜索页面上的其他link打开是否正确那么势必要把上面选中部分给参数化 首先我们要在选中部分这句代码上面增加一句话,如下: SetTOProperty方法能够在脚本运行中,设置对象的属性值而QTP识别应用程序上的对象,完全是依靠对象库中的对象来识别的所以只要对象库中的对象属性值变掉了,QTP操作的对象也不同了通过对该Link对象,在对象库中属性及属性值的研究发现,启决定性作用的是该对象text属性所以只要更改这个text属性,就能让QTP点击其他Link了 在这里我们做两个link的修改,如下: 在我的脚本的对象库中是没有58同城,这个link对象的让我们看看这样修改后,能不能通过两次循环,依次点击打开名为58同城的连接

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论