QTP学习与实践经验总结4 1.docx

上传人:b****5 文档编号:4442418 上传时间:2022-12-01 格式:DOCX 页数:23 大小:716.45KB
下载 相关 举报
QTP学习与实践经验总结4 1.docx_第1页
第1页 / 共23页
QTP学习与实践经验总结4 1.docx_第2页
第2页 / 共23页
QTP学习与实践经验总结4 1.docx_第3页
第3页 / 共23页
QTP学习与实践经验总结4 1.docx_第4页
第4页 / 共23页
QTP学习与实践经验总结4 1.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

QTP学习与实践经验总结4 1.docx

《QTP学习与实践经验总结4 1.docx》由会员分享,可在线阅读,更多相关《QTP学习与实践经验总结4 1.docx(23页珍藏版)》请在冰豆网上搜索。

QTP学习与实践经验总结4 1.docx

QTP学习与实践经验总结41

6关于regularexpressions

A问题描述:

在QTP中可以是使用regularexpressions来完善你的参数化

B处理流程:

B1参数化你的系统

B2将参数化设定为regularexpressions

B3在表格中使用regularexpressions

C术语说明

C1TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server相连的计算机上实现测试用例的管理

C2QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试

D实例:

D1参数化你的系统,以参数1980-2000年中间相隔20年为例,需要比较1980-1990以及1990-2000之间的值,如果使用一般的参数化,那么需要设定20个参数1980,1981,....2000,使用regularexpressions则不需要这么麻烦

D2在参数化时选为regularexpressions,选定你要参数化的步骤,参数化它在你参数化的过程中会遇到这如下对话框

图6.D2.1

选定regularexpression,点击ok

在QTP的table中会出现你参数化的一列

图6.D2.2

D3在表格中使用regularexpressions以”[”,”]”为例,可以在table中输入198[0-9],199[0-9],2000如下图

图6.D3.3

这样只用三行参数,就可以满足20行参数达到的要求

以上只是regularexpression的一个例子,regularexpression还有类似”[”的方便符号,详细可查阅QTPuserhelp,通过如上方法就能将这些符号应用到你的测试中

下面是对regularexpression的一个简单介绍

如果我们问那些UNIX系统的爱好者他们最喜欢什么,答案除了稳定的系统和可以远程启动之外,十有八九的人会提到正则表达式;如果我们再问他们最头痛的是什么,可能除了复杂的进程控制和安装过程之外,还会是正则表达式。

那么正则表达式到底是什么?

如何才能真正的掌握正则表达式并正确的加以灵活运用?

本文将就此展开介绍,希望能够对那些渴望了解和掌握正则表达式的读者有所助益。

入门简介

简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。

我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sedshell程序等。

此外,象JavaScript这种客户端的脚本语言也提供了对正则表达式的支持。

由此可见,正则表达式已经超出了某种语言或某个系统的局限,成为人们广为接受的概念和功能。

正则表达式可以让用户通过使用一系列的特殊字符构建匹配模式,然后把匹配模式与数据文件、程序输入以及WEB页面的表单输入等目标对象进行比较,根据比较对象中是否包含匹配模式,执行相应的程序

举例来说,正则表达式的一个最为普遍的应用就是用于验证用户在线输入的邮件地址的格式是否正确。

如果通过正则表达式验证用户邮件地址的格式正确,用户所填写的表单信息将会被正常处理;反之,如果用户输入的邮件地址与正则表达的模式不匹配,将会弹出提示信息,要求用户重新输入正确的邮件地址。

由此可见正则表达式在WEB应用的逻辑判断中具有举足轻重的作用。

\  基本语法

在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语法格式。

正则表达式的形式一般如下:

/love/

其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。

用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。

为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的“元字符”。

所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。

较为常用的元字符包括:

“+”,“*”,以及“?

”。

其中,“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次,“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次,而“?

”元字符规定其前导对象必须在目标对象中连续出现零次或一次.

下面,就让我们来看一下正则表达式元字符的具体应用。

/fo+/

因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的“fool”,“fo”,或者“football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。

/eg*/

因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的“easy”,“ego”,或者“egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。

/Wil?

/

因为上述正则表达式中包含“?

”元字符,表示可以与目标对象中的“Win”,或者“Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。

除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。

例如,

/jim{2,6}/

上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。

在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。

\s:

用于匹配单个空格符,包括tab键和换行符;

\S:

用于匹配除单个空格符之外的所有字符;

\d:

用于匹配从0到9的数字;

\w:

用于匹配字母,数字或下划线字符;

\W:

用于匹配所有与\w不匹配的字符;

用于匹配除换行符之外的所有字符。

(说明:

我们可以把\s和\S以及\w和\W看作互为逆运算)

下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。

/\s+/

上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。

/\d000/

如果我们手中有一份复杂的财务报表,那么我们可以通过上述正则表达式轻而易举的查找到所有总额达千元的款项。

除了我们以上所介绍的元字符之外,正则表达式中还具有另外一种较为独特的专用字符,即定位符。

定位符用于规定匹配模式在目标对象中的出现位置。

较为常用的定位符包括:

“^”,“$”,“\b”以及“\B”。

其中,“^”定位符规定匹配模式必须出现在目标字符串的开头,“$”定位符规定匹配模式必须出现在目标对象的结尾,\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一,而“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。

同样,我们也可以把“^”和“$”以及“\b”和“\B”看作是互为逆运算的两组定位符。

举例来说:

/^hell/

因为上述正则表达式中包含“^”定位符,所以可以与目标对象中以“hell”,“hello”或“hellhound”开头的字符串相匹配。

/ar$/

因为上述正则表达式中包含“$”定位符,所以可以与目标对象中以“car”,“bar”或“ar”结尾的字符串相匹配。

/\bbom/

因为上述正则表达式模式以“\b”定位符开头,所以可以与目标对象中以“bomb”,或“bom”开头的字符串相匹配。

/man\b/

因为上述正则表达式模式以“\b”定位符结尾,所以可以与目标对象中以“human”,“woman”或“man”结尾的字符串相匹配。

为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。

例如:

/[A-Z]/

上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。

/[a-z]/

上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。

/[0-9]/

上述正则表达式将会与从0到9范围内任何一个数字相匹配。

/([a-z][A-Z][0-9])+/

上述正则表达式将会与任何由字母和数字组成的字符串,如“aB0”等相匹配。

这里需要提醒用户注意的一点就是可以在正则表达式中使用“()”把字符串组合在一起。

“()”符号包含的内容必须同时出现在目标对象中。

因此,上述正则表达式将无法与诸如“abc”等的字符串匹配,因为“abc”中的最后一个字符为字母而非数字。

如果我们希望在正则表达式中实现类似编程逻辑中的“或”运算,在多个不同的模式中任选一个进行匹配的话,可以使用管道符“|”。

例如:

/to|too|2/

上述正则表达式将会与目标对象中的“to”,“too”,或“2”相匹配。

正则表达式中还有一个较为常用的运算符,即否定符“[^]”。

与我们前文所介绍的定位符“^”不同,否定符“[^]”规定目标对象中不能存在模式中所规定的字符串。

例如:

/[^A-C]/

上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。

一般来说,当“^”出现在“[]”内时就被视做否定运算符;而当“^”位于“[]”之外,或没有“[]”时,则应当被视做定位符。

最后,当用户需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符“\”。

例如:

/Th\*/

上述正则表达式将会与目标对象中的“Th*”而非“The”等相匹配。

E个人感受:

7关于datatable

7.1global与current的区别

A问题描述:

在我们参数化的过程中总会遇到让我们选择global或者currentAction的情况,下面对这两种模式作相应的介绍

B问题解答:

Global全局参数:

他控制整个Action的运行次数,global里有几行参数,则运行几次脚本

CurrentAction:

对应于单一的Action的参数,对于一个Action没有实际的意义,而几个Action共同在一个脚本中使用时,就由他来控制单一Action的循环次数

在前面介绍的多个Action共同运行时,实际我们已经介绍了他们的使用方法

以登陆系统,添加信息,再退出为例,登陆系统的用户名,密码是global参数,他控制这个脚本的循环次数,为了达到一次登陆多次添加的目的,将登陆名密码设为一行,而在添加Action中将其中添加的那些信息参数化后,将这些参数设为currentAction,这控制当运行到这个Action时,一共运行几次这个Action

当设定好后,实际运行一遍脚本,但是,多次运行其中的添加Action

C个人感受:

7.2importexcel的问题

A问题描述:

在使用QTP参数化时,我们可以使用在以前项目中已经设定好的参数,将这些参数保存为excel格式,并在使用时将他们导入到QTP的table中

B处理流程:

B1录制脚本

B2设置参数

B3导入参数

C术语说明

C1TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server相连的计算机上实现测试用例的管理

C2QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试

D实例:

D1录制脚本,录制你要的脚本

D2设置参数,无需特殊设置

D3导入数据,在table中点击右键选择flIE–importfromfile如下图

图7.2.D3.1

QTP会给你一个提示信息,表示你现在表格中的名称B将被改成导入execl表中的名称

图7.2.D3.2

点击确定,进入如下对话框,选择你的execl表格

图7.2.D3.3

打开,QTP如下图

图7.2.D3.4

原先的a列被改为测试列

提示:

使用这个方法将使execl中的所有信息都导入到QTP中,如果a的位置已经有数据,数据将被execl中的数据覆盖

E个人感受:

7.3关于editingthedatatable

A问题描述:

当参数化完成后,很多情况下需要对参数进行修改

B处理流程:

B1录制脚本

B2参数化脚本

B3在table中修改参数

C术语说明

C1TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server相连的计算机上实现测试用例的管理

C2QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试

D实例:

D1录制脚本,查看QTPuserhelp

D2参数化脚本,查看QTPuserhelp

D3在table中修改参数,在table中点击右键,选择edit,如下图

图7.3.D3.1

提示:

在这里你可以对参数进行删除和修改,如果想把这个参数行彻底删除,则选中该行,点击右键,并且选择delete

E个人感受:

8关于检查点

8.1checkpoint的返回值

A问题描述:

在一些特定情况下,脚本需要知道检查点是否通过,这时候就需要通过检验检查点的返回值来判断检查点是否通过

B处理流程:

B1录制脚本,设定检查点

B2在expertvIEw中设定检查点

C术语说明

C1TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server相连的计算机上实现测试用例的管理

C2QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试

D实例:

D1录制脚本,设定检查点,如下图

图8.1.D1.1

D2在expertvIEw中设定检查点,点击expertvIEw,进入expertvIEw看到如下图所示代码

图8.1.D2.2

代码是checkcheckpoint(),你需要在check后面加一个(),使代码变为check.(checkpoint())并且在整行的前面加上一个变量(变量无需提前定义)如

a=Browser("").Page("").Frame("reportFrame").Check(CheckPoint("列表"))

这样检查点的返回值就可以被a记录下来,那么就可以通过判断a的值来确定检查点是否通过

E个人感受:

8.2QTP检查点的设定

A问题与解答:

QTP通过检查点可以检查流程是否正确,但如果在一个脚本中同事检查正确或者不正确,就会遇到问题,这是就需要分开录制脚本

B实例:

以一个系统得登陆操作为例,就需要录制两个脚本,分别是登陆成功,登陆失败,不同得检查点,不同的参数化

提示:

在检查登陆时,登陆成功,可以检查登陆成功后得一些特殊得图像,或者文字,登陆失败则要检查错误提示

C个人感受:

8.3关于文字检查点得参数化

A问题描述:

在建立文字检查点后,参数化检查点,但是随着每次循环环境得不通,检查点得可能无法正确检查到文字,这种情况是因为检查点两边得限制条件发生变化的原因造成得解决这个问题,就需要对文字检查点的限制条件也进行参数化

B处理流程:

B1录制脚本,设定文字检查点

B2参数化文字检查点

B3参数化文字检查点两端的限定条件testbefore和testafter

C术语说明

C1TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server相连的计算机上实现测试用例的管理

C2QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试

D实例:

D1录制脚本,设定文字检查点详见QTP使用手册

D2参数化文字检查点,对于文字检查点,可以通过参数化这个方法,通过一个检查点,检查多个情况

当添加文字检查点后,点击这个检查点会弹出如下对话框

图8.3.D2.1

在这里可以对文字检查点作一些设定,点击configure按钮弹出如下对话框

图8.3.D2.2

在这里你可以对检查点作简单得设定,选中字体,然后点击checkedtext这些文字被设定为被检查对象,点击textbefore,这些文字被设定为限定条件textbefore,textafter同before一样

提示:

当选定中间的文字为textbefore或者textafter时他们前面或者后面的文字就会消失,且不能重现

如我选定邮箱为textbefore

图8.3.D2.3

进入两个字变为灰体,点击ok

图8.3.D2.4

再次点击configure,如下图

图8.3.D2.5

进入两字不再出现

在对话框的下半部分中

图8.3.D2.6

你可以对chekedtext作详细的设定以及参数化,详见QTPuserhelp

D3参数化文字检查点两端的限定条件testbefore和testafter,当你设定好checkedtext后,还需要对textbefore和textafter作一些设定,你可以通过选择如下图的下来菜单

图8.3.D3.7

来进入textbefore或者textafter的对话框

图8.3.D3.8

图8.3.D3.9

当你不想使用textbefore,textafter时可以将Usethetextafter单选框,勾没,这样QTP就会在整个页面中寻找你的checktext

Texttocheckisdisplayedbeforeoccurrenceof限定checkedtext出现的次数

E个人感受:

8.4设立可重用检查点

A问题描述:

每个脚本都需要设定检查点,但有些脚本的检查点可能相同,这时重复设定检查点就会使工作没有实际意义,这时可以设立可重用检查点来解决这个问题

B处理流程:

B1录制脚本,不设立检查点

B2录制可重用检查点

B3调用可重用检查点

C术语说明

C1TD是MI公司的一款测试管理工具,他采用B/S模式,使得用户可以在任何与Server相连的计算机上实现测试用例的管理

C2QTP是MI公司推出的功能测试工具,主要用于B/S模式的系统测试

D实例:

D1录制脚本,不设立检查点

D2录制可重用检查点,将QTPrecordandrunsetting设为录制当前页,开始录制,不录制步骤,直接在录制过程中添加检查点,将这个只有检查点的Action设为可重用Action如下图

图8.4.D2.1

D3调用可重用检查点,在第一步录制好的脚本中调用这个可重用检查点,首先选中需要添加检查点的步骤,然后选择insert—callexistingAction但是选择aftercurrentstep

图8.4.D3.2

检查点添加到步骤之后,通过这种发放这个检查点可以被多次使用

E个人感受:

8.5QTP检查点添加有问题,造成无法识别控件,导致脚本无法运行的问题

A问题与解答:

可以在录制时添加文字检查点,虽然这个检查点在运行时还是会出错,但是我们可以通过找个检查点对于控件作不做任何操作的记录,添加检查点之后,这个控件上的信息将被记录下来,可以按照常规方法添加文字检查点,再将录制时添加的检查点删除即可

B个人感受:

8.6标准检查点

A问题与解答:

个人认为标准检查点是QTP最方便实用的检查点,检查点捕捉控件的所有可检查的属性,并且选择其中认为应该检查的加以检查,你可以通过手工设定,增加或者减少检查的属性如下图

图8.6.A.1

可以通过点击

按钮设定检查的具体内容

点击

弹出如下对话框

图8.6.A.2

可以对link的具体属性作修改

点击

弹出如下对话框

图8.6.A.3

也可以对imag作修改

可以通过

图8.6.A.4

来选择其中要检查的控件属性

B个人感受:

标准检查点是非常常用的检查点,一般的问题,标准检查点都能解决,建议多使用标准检查点

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1