数据驱动在QTP中的运用(四) - 使用SQL数据库

原创 2007年09月15日 11:50:00

本篇主要讲述Flight打开订单的正确性测试,通过数据库进行数据驱动测试,主要步骤和考虑思路如下:

1.从数据库中随机读取一条存在的记录
2.在Flight中打开本条记录
3.比较数据库中的数据和软件界面上的显示是否一致
   - 其中数据库中读出的记录数据保存在局部变量中
   - 界面显示的实际数据通过Output Value保存到QTP自带的DataTable中.

 

Option Explicit

Dim conn, rst, maxnumber, rndNumber, sql
Dim dbFlightNumber, dbTicketNumber, dbPlaneType, dbCustomerName
Dim oPlaneType
'------------------------------------------------------------------------------------------------------------------------------------------------------

'获取数据库中的记录数据(期望结果)
Const  strConn = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=QT_Flight32"
Set conn=CreateObject("Adodb.Connection")
Set rst=CreateObject("Adodb.RecordSet")
conn.open strConn

'获取最大Order_Number
sql = "select max(order_number) from orders "
rst.Open sql, conn
maxNumber = rst.Fields(0).Value
rst.Close

'随即获取一条记录
rndNumber = RandomNumber(1, maxNumber)
sql = "Select  Flight_Number, Tickets_Ordered, Class, Customer_Name  from orders where order_number =" & CStr(rndNumber)
rst.Open sql, conn

While rst.EOF
 rndNumber = RandomNumber(1, maxNumber)
 sql = "Select  Flight_Number, Tickets_Ordered, Class, Customer_Name  from orders where order_number =" & CStr(rndNumber)
 rst.Open sql, conn
Wend

rst.MoveFirst
While not rst.EOF
    dbFlightNumber = rst.Fields(0).value
    dbTicketNumber =rst.Fields(1).value
    dbPlaneType = rst.Fields(2).value
    dbCustomerName = rst.Fields(3).value
    rst.MoveNext
Wend

conn.close
Set rst=nothing
Set conn=nothing


'------------------------------------------------------------------------------------------------------------------------------------------------------
'录制脚本程序
SystemUtil.CloseProcessByName "Flight4a.exe"
SystemUtil.Run Environment.Value("ProductDir") & "/samples/flight/app/flight4a.exe"
Dialog("Login").WinEdit("Agent Name:").Set "Admin"
Dialog("Login").WinEdit("Password:").Set "Mercury"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").WinButton("Button").Click
Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"
Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set rndNumber  '在这里Set 随机打开的订单
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
Window("Flight Reservation").Activate


'获取 界面显示的实际数据(实际结果)
Window("Flight Reservation").WinEdit("Flight No:").Output CheckPoint("Flight No:")
Window("Flight Reservation").WinEdit("Tickets:").Output CheckPoint("Tickets:")
Window("Flight Reservation").WinEdit("Name:").Output CheckPoint("CustomerName")

'将界面上的仓位转换为1,2,3
If Window("Flight Reservation").WinRadioButton("First").GetROProperty("Text") = "ON" Then
 oPlaneType = 1
ElseIf Window("Flight Reservation").WinRadioButton("Business").GetROProperty("Text") = "ON" Then
 oPlaneType = 2
ElseIf Window("Flight Reservation").WinRadioButton("Economy").GetROProperty("Text") = "ON" Then 
 oPlaneType = 3
End If


'检查Flight Number
If CStr(dbFlightNumber) = CStr(DataTable("oFlightNumber", dtLocalSheet)) Then
 Reporter.ReportEvent micPass, "打开订单- Flight Number", "期望结果是:" & dbFlightNumber & ", 界面显示实际结果是:" & DataTable("oFlightNumber", dtLocalSheet)
Else
 Reporter.ReportEvent micPass, "打开订单- Flight Number", "期望结果是:" & dbFlightNumber & ", 界面显示实际结果是:" & DataTable("oFlightNumber", dtLocalSheet)
End If

'检查Ticket Number
If CStr(dbTicketNumber) = CStr(DataTable("oTicketNumber", dtLocalSheet)) Then
 Reporter.ReportEvent micPass, "打开订单- TicketNumber", "期望结果是:" & dbTicketNumber & ", 界面显示实际结果是:" & DataTable("oTicketNumber", dtLocalSheet)
Else
 Reporter.ReportEvent micPass, "打开订单- TicketNumber", "期望结果是:" & dbTicketNumber & ", 界面显示实际结果是:" & DataTable("oTicketNumber", dtLocalSheet)
End If

'检查Customer Name
If CStr(dbCustomerName) = CStr(DataTable("oCustomerName", dtLocalSheet)) Then
 Reporter.ReportEvent micPass, "打开订单- CustomerName", "期望结果是:" & dbCustomerName & ", 界面显示实际结果是:" & DataTable("oCustomerName", dtLocalSheet)
Else
 Reporter.ReportEvent micPass, "打开订单- CustomerName", "期望结果是:" & dbCustomerName & ", 界面显示实际结果是:" & DataTable("oCustomerName", dtLocalSheet)
End If

'检查Plane Type
If CStr(dbPlaneType) = CStr(oPlaneType) Then
 Reporter.ReportEvent micPass, "打开订单- Plane Type", "期望结果是:" & dbPlaneType & ", 界面显示实际结果是:" & oPlaneType
Else
 Reporter.ReportEvent micPass, "打开订单- Plane Type", "期望结果是:" & dbPlaneType & ", 界面显示实际结果是:" & oPlaneType
End If

'Close Prog
Window("Flight Reservation").Close

 


 

数据驱动在QTP中的运用

  • qiulingfeng
  • qiulingfeng
  • 2009年09月29日 18:31
  • 280

QTP 读取文本中SQL语句并根据查询到得结果操作

'连接数据库 set adoconn=Createobject("adodb.connection") adoconn.connectionstring="OraOLEDB.Oracle.1;Pers...
  • wangsy0202
  • wangsy0202
  • 2016年07月14日 09:55
  • 235

QTP连接oracle并操作数据库的方法

QTP连接oracle并操作数据库的方法这里以oracle 9i为例子,其他的数据库连接方法是相通的。 a.首先要在本机建议ODBC数据源,这个属于基本操作,这里不讲,跳过;   QTP连接orac...
  • wangsy0202
  • wangsy0202
  • 2016年06月16日 19:28
  • 1190

seleniumWebDriver自动化测试框架_04TestNG和MySQL数据库实现数据驱动测试

seleniumWebDriver自动化测试框架_04TestNG和MySQL数据库实现数据驱动测试 测试目标:实现从mysql数据库中获取某张数据表前两列的值作为搜狗首页的搜索关键字,点击“搜索”...
  • lvbu_abcd
  • lvbu_abcd
  • 2017年03月11日 16:36
  • 2601

SQL语言四大类

SQL语言四大类  SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。数据查询语言DQL  数据查询语言DQL基本结构是由SELECT子句,FRO...
  • sunhuaqiang1
  • sunhuaqiang1
  • 2016年10月21日 10:37
  • 42766

数据库事件驱动

1、事件驱动就会用到获取各种时间,现在的时间,与现在的时间差;TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。说明:返回日期或日期时间表达式...
  • hbuwanglei
  • hbuwanglei
  • 2016年10月10日 14:58
  • 190

数据驱动测试一:使用TestNG进行数据驱动

使用TestNG中@DataProvider注解定义当前方法中的返回对象作为测试脚本的测试数据集进行数据驱动...
  • heart_1014
  • heart_1014
  • 2016年07月24日 10:47
  • 3128

QTP脚本中使用正则表达式,匹配字符串方法

第一、首先正则表达式使用如下对象。   1、RegExp 这是使用正则表达式匹配模式的主要对象了   属性:   Pattern:一个字符串,用来定义正则表达式。   Igno...
  • wangsy0202
  • wangsy0202
  • 2016年07月06日 16:01
  • 1161

数据驱动在QTP中的运用(一) - 自定义TXT文件

以下是对Mercury Interactive公司的Flight飞机订票系统的Login模块进行数据驱动测试的VBScript脚本实例,通过对自定义TXT文件进行读写操作。Option Explici...
  • softesting
  • softesting
  • 2007年09月14日 22:28
  • 1154

数据驱动在QTP中的运用(二) - 自定义EXCEL文件

本节共有两个实例,第一个是把测试用例的数据写到EXCEL文件中,第二个是通过读取EXCEL文件中的数据,并把执行结果写入到EXCEL文件中。1.对EXCEL文件进行写操作 Option Explici...
  • softesting
  • softesting
  • 2007年09月14日 23:24
  • 1446
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据驱动在QTP中的运用(四) - 使用SQL数据库
举报原因:
原因补充:

(最多只允许输入30个字)