夜深人静 发表于 2012-9-17 17:46:52

QTP中类型不匹配错误

Dim i                                                                '定义行号
Dim outputvalue                                           '定义系统实际提示信息变量
Dim istatus                                                   '定义系统预期提示信息变量

For i=0 to datatable.GetSheet("Action1").getrowcount

Browser("Web Tours").Page("Web Tours").Frame("navbar").WebEdit("username").Set DataTable("username", dtLocalSheet)
Browser("Web Tours").Page("Web Tours").Frame("navbar").WebEdit("password").SetSecure DataTable("password", dtLocalSheet)
Browser("Web Tours").Page("Web Tours").Frame("navbar").Image("Login").Click 44,11
Browser("Web Tours").Page("Web Tours").Frame("info").Output CheckPoint("info")                              '插入文本输出点

outputvalue=datatable("outmsg",dtlocalsheet)
istatus=datatable("status",dtlocalsheet)

If    outputvalue <> istatus       Then
        reporter.ReportEvent 1,"登陆功能测试", "预期值为:" +istatus, "实际值为:" +outputvalue

End If

datatable.GetSheet("Action1").getnextrow
Next

'进入系统
Browser("Web Tours").Page("Web Tours").Frame("navbar").Image("SignOff Button").Click
Browser("Web Tours").Page("Web Tours").Sync
Browser("Web Tours").Close


运行一遍之后就会报错: 类型不匹配: 'reporter.ReportEvent'

geek 发表于 2012-9-18 16:08:25

貌似你这句有问题,reporter.ReportEvent 1,"登陆功能测试", "预期值为:" +istatus, "实际值为:" +outputvalue你最后面一个参数中间加了个逗号,"预期值为:" +istatus, "实际值为:" +outputvalue
你把这个逗号放到后面的字符串中试试.
reporter.ReportEvent 1,"登陆功能测试", "预期值为:" +istatus+",实际值为:" +outputvalue

另你的for循环上界最好不要为0,这样会多循环一次哦.最好为1.你认为呢?.

louqqson008 发表于 2012-9-18 17:59:14

"预期值为:" +istatus, "实际值为:" +outputvalue
应该是这里错了,但具体问题出在哪我也有点迷糊,把,号换成&呢?
如果知道答案了,也告诉我下啊

xjwldlover 发表于 2012-9-18 23:38:12

本帖最后由 xjwldlover 于 2012-9-19 09:54 编辑

调用函数时提示类型错误,一般都是函数参数写错了,比如楼主这里,reportEvent的用法在帮助文档里是
Reporter.ReportEvent EventStatus, ReportStepName, Details [, ImageFilePath]
第四个参数是个path,显然楼主的第四个参数不是个文件路径

buble84 发表于 2012-9-19 13:33:16

试试这样
reporter.ReportEvent 1,"登录功能测试","预期值为: "+istatus+", 实际值为: "+outputvalue
页: [1]
查看完整版本: QTP中类型不匹配错误