我正在研究QTP测试用例的数据库检查点。首先,脚本查询表timesheet
的第一行并检索列departmentCode
的值。然后,它会查询表department
,根据name
的值检索列departmentCode
的值。之后,它将name
的值与QTP的本地数据表中的值进行比较。
strCurrentEnv="localhost"
dbName="timex"
strConnection = "DRIVER={MySQL ODBC 5.3 ANSI Driver}; Server=" & strCurrentEnv & "; DATABASE="& dbName& ";uid=root; pwd="
Set conn=CreateObject("ADODB.Connection")
conn.Open strConnection
queryDepCode="Select departmentCode from timesheet where timesheetId=1"
Set exDepCode=conn.Execute(queryDepCode)
depCode=exDepCode.GetString
print depCode
queryDepName="select name from department where departmentCode="&depCode
Set exDepName=conn.Execute(queryDepName)
depName=exDepName.GetString
print depName
print DataTable("department", dtLocalsheet)
If depName=DataTable("department", dtLocalsheet) Then
print "equals"
Else
print "not equal"
End If
depCode
的价值是' CS',depName
是'客户支持',DataTable("department", dtLocalsheet)
也是'客户支持& #39;
此刻此测试案例有两个问题。
运行此脚本时,QTP会返回错误
[MySQL] [ODBC 5.3(a)驱动程序] [mysqld-5.1.41]未知列' CS'在' where子句'
第(30)行:"设置exDepName = conn.Execute(queryDepName)"。
我不知道这意味着什么。未知栏' CS'? depCode
的输出为CS
,department
表的第二行有departmentCode
的' CS&#39}。和name
客户支持'。
我更改了语句
queryDepName="select name from department where departmentCode="&depCode
到
queryDepName="select name from department where departmentCode='CS'"
这次QTP没有返回错误,但输出是
CS Customer Support Customer Support not equal
我不明白,当输出完全相同时,它们怎么可能不相等?
我们将不胜感激。