QTP参数化

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

QTP参数化参数化种类:数据表、环境变量、随机数、外部数据参数化1.数据表(datatable)方式参数化a、file--settings--run下datatableiterations中设置控制的是数据表中global里数据的运行方式;global是全局的!当运行方式设置为运行全部或多行时,运行几行数据“程序”就要回放几次!!不能重新设置!!b、edit--action--actioncallproperties--run下datatableiterations中设置控制的是数据表中该action里数据的运行方式;local是局部的!当运行方式设置为运行全部或多行时,运行几行数据“该action”就要回放几次!!进一步说明:a、当global有多行数据file--settings--runOnallRows;action有多行数据actioncallproperty-RunOnallRows程序每次运行时,action中的每行都要执行一次b、当global有多行数据file--settings--runOnallRows;action有多条数据,actioncallproperty-Runoneiterationonly而且global的行数action的行数,当action执行到最后一行后,不管此时global的行数为几,下次回放时action都执行最后一行!如果global的行数action的行数,action就执行不到最后一行c、actioncallproperty-Runfromrowstorows,就结合上面所说可以理解d、当同一个action中有多个参数时,且actioncallproperty-RunOnallRows,这个时候每个参数的数据个数需要相等2.随机数(random)参数化a、可以指定随机数的范围b、可以为该随机数指定名称,同时需要指定该随机参数产生新随机数的方式。这种情况下该随机数可以在别处使用。产生新随机数的方式:a、foreachactioniteration迭代运行相同的action随机数不变化,运行不同action才重新产生一次随机数在一个action保持不变b、foreachtestiteration在每一个测试运行的完整过程,随机数保持不变。重复执行该测试的时候随机数变化,例如在datatable设置的global参数执行循环情况下。在一次系统迭代保存不变c、onceperentiretestrun在整个测试中随机数保持不变,相当于只产生一次随机数在整个测试中保持不变3.环境变量(environment)参数化a、环境变量的来源有两种:内部环境变量和用户自定义环境变量。内部环境变量是QTP默认定义的一组变量,包括一些系统信息、项目信息等,例如:testdir、OS等信息。用户定义的环境变量需要用户自己定义变量名和值,支持从外部导入,格式为XML文件。b、环境变量做参数有一定局限性,它对数据操作没有数据表灵活,环境变量用的最多的还是数据的共享c、环境变量做参数时,每个参数值都需要指定,而且不能批量生成,所以它有一定的应用场景:当一个test中的不同action需要同样一个参数,用环境变量去参数化常量是个很好的方法;其次就是不同的test需要用到同样的参数时,用环境变量可以很好解决这个问题4.外部数据源实现参数化利用外部数据驱动脚本的运行,这是经常用到的方法,这样可以很方便的组织测试数据。相对前三种方法,这种方式数据的读取、控制稍有些麻烦。下面以常见的几种方式进行说明。a、数据文件以excel格式组织用Excel组织测试数据是最常用的了。此种驱动可以采用两种方式,将数据Import到DataTab中或是利用com来操纵Excel文件。下面给出这两种方式的示例代码。(输入flight用户名和密码)方式一、导入到DataTable中'获得数据文件路径,并将数据文件导入到DataTable运行表中DataStr=d:\data.xlsDataTable.AddSheet(TestData)DataTable.ImportSheetDataStr,Sheet1,TestDatawait1'输入用户名和密码Fori=1toDataTable.GetSheet(TestData).GetRowCountsystemutil.RunD:\ProgramFiles\QuickTestProfessional\samples\flight\app\flight4b.exeDataTable.SetCurrentRowi'把i设置为当前执行行UserName=DataTable.Value(UserName,TestData)PassWord=DataTable.Value(PassWord,TestData)Dialog(Login).WinEdit(AgentName:).SetUserNameDialog(Login).WinEdit(Password:).SetSecurePassWordwait1Dialog(Login).WinButton(Cancel).ClickNext方式二、利用com操纵ExcelDataStr=d:\data.xlsSetExlObj=CreateObject(Excel.Application)ExlObj.Visible=false'设置为true的情况,文档会打开ExlObj.DisplayAlerts=falseSetbook=ExlObj.Workbooks.Open(DataStr)Setsheet=book.Worksheets(Sheet1)Fori=2tosheet.usedrange.rows.countsystemutil.RunD:\ProgramFiles\QuickTestProfessional\samples\flight\app\flight4b.exeUserName=ExlObj.WorkSheets(Sheet1).Cells(i,1)'或者UserName=sheet.Cells(i,1)PassWord=ExlObj.WorkSheets(Sheet1).Cells(i,2)'或者PassWord=sheet.Cells(i,2)Dialog(Login).WinEdit(AgentName:).SetUserNameDialog(Login).WinEdit(Password:).SetSecurePassWordwait2Dialog(Login).WinButton(Cancel).ClickNextExlObj.QuitSetExlObj=nothingb、数据文件以txt格式组织ConstForReading=1TFilePath=d:\data.txtSetFso3=CreateObject(Scripting.FileSystemObject)SetDataFile=Fso3.OpenTextFile(TFilePath,ForReading,False)DataFile.SkipLineDowhileDataFile.AtEndOfLinetruesystemutil.RunD:\ProgramFiles\QuickTestProfessional\samples\flight\app\flight4b.exeReadString=DataFile.ReadLineDataStr=split(ReadString,,)Dialog(Login).WinEdit(AgentName:).SetDataStr(0)Dialog(Login).WinEdit(Password:).SetSecureDataStr(0)wait2Dialog(Login).WinButton(Cancel).ClickloopDataFile.closeSetFso3=Nothingc、数据文件以数据库组织,下面代码是用Access做的,其他类型数据库类似strDB=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\data.mdb;PersistSecurityInfo=FalsestrTableName=dataSetConn=createobject(adodb.connection)SetRst=createobject(adodb.recordset)Conn.openstrDBRst.openselect*from+strTableName,Conn,2,2DimstrTest(1)Rst.MoveFirstDowhilenotRst.eofsystemutil.RunD:\ProgramFiles\QuickTestProfessional\samples\flight\app\flight4b.exestrTest(0)=trim(cstr(Rst.fields(1)))strTest(1)=trim(cstr(Rst.fields(2)))Dialog(Login).WinEdit(AgentName:).SetstrTest(0)Dialog(Login).WinEdit(Password:).SetSecurestrTest(1)Rst.MoveNextwait2Dialog(Login).WinButton(Cancel).ClickLoopRst.closeSetConn=nothingd、数据文件以xml格式组织DimxmlDoc'AsDOMDocument需要引用xml对象setxmlDoc=CreateObject(microsoft.xmldom)xmlDoc.load(d:\testdata.xml)SetRoot=xmlDoc.documentElementFori=0ToRoot.childNodes.Length-1systemutil.RunD:\ProgramFiles\QuickTestProfessional\samples\flight\app\flight4b.exeSetTestCases=Root.childNodes.Item(i)Forj=0ToTestCases.childNodes.Length-1SetTestCase=TestCases.childNodes.Item(j)Ifcstr(TestCase.nodeName)=UserNameThenDialog(Login).WinEdit(AgentName:).SetTestCase.textendifIfcstr(TestCase.nodeName)=PassWordThenDialog(Login).WinEdit(Password:).SetSecureTestCase.textEndIfNextwait2Dialog(Login).WinButton(Cancel).ClickNextSetroot=nothingSetxml=nothing

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功