Vbscript UFT-随机日期
我创建了这段代码,并在一定范围内获得了一个随机日期。我在一些网站上支持它,在stack上回答其他网站的问题。这是可行的,没有问题,但当我尝试在一个函数中传递时,会不断给出错误Vbscript UFT-随机日期,vbscript,hp-uft,Vbscript,Hp Uft,我创建了这段代码,并在一定范围内获得了一个随机日期。我在一些网站上支持它,在stack上回答其他网站的问题。这是可行的,没有问题,但当我尝试在一个函数中传递时,会不断给出错误 StartDate = "01-01-1950" EndDate= "31-12-2000" StartDate = CDate(StartDate) EndDate= CDate(EndDate) Randomize dtmRandomDate = DateValue((EndDate- StartDate + 1)
StartDate = "01-01-1950"
EndDate= "31-12-2000"
StartDate = CDate(StartDate)
EndDate= CDate(EndDate)
Randomize
dtmRandomDate = DateValue((EndDate- StartDate + 1) * Rnd + StartDate )
Browser("DashBoard_2").Page("DashBoard").WebEdit("txtBornDate").Set dtmRandomDate
错误:
职能:
Function DataRandom(StartDate, EndDate)
Dim StartDate, EndDate
StartDate = CDate(StartDate)
EndDate= CDate(EndDate)
Randomize
dtmRandomDate = EndDate((dtmEndDate - StartDate+ 1) * Rnd + StartDate)
End Function
我认为问题在于我传递变量的方式。关于日期函数,我没有声明它,让变量接受日期?是UFT系统本身的问题
已经尝试了一些事情,但没有成功
谢谢,,
最好的祝愿从测试中可以看出,它在第130行失败了
a = DataRandom(01-02-2020, 03-04-2022)
这里有两个问题:
DateRandom()
希望返回一个值,但函数定义不包含返回结果的语句,其行为更像子过程而不是函数。要解决此问题,请将函数定义更改为
Function DataRandom(StartDate, EndDate)
Dim StartDate, EndDate
StartDate = CDate(StartDate)
EndDate = CDate(EndDate)
Randomize 'Should be initialised once rather than with each call to the function.
dtmRandomDate = DateValue((EndDate - StartDate + 1) * Rnd + EndDate)
DateRandom = dtmRandomDate 'This line returns the result.
End Function
CDate()
将值转换为correctDate
时,应将值作为字符串传递。这只需要在测试中将每个参数封装在双引号中
a = DataRandom("01-02-2020", "03-04-2022")
同样如前所述,
Randomize
语句应该只运行一次,而不是每次调用函数时都运行一次。理想情况下,您应该有一个处理脚本设置和初始化的Init()
过程。因此,获得Lankymart帮助,这是库中的最后一个函数。
更改变量,或根据需要声明
Public StartDate, EndDate
Function DateRandom(StartDate, EndDate)
Dim dtmRandomDate, dtmStartDate, dtmEndDate
dtmStartDate = CDate(StartDate)
dtmEndDate = CDate(EndDate)
dtmRandomDate = DateValue((dtmEndDate - dtmStartDate + 1) * Rnd + dtmStartDate)
DateRandom = dtmRandomDate 'Returning the result
End Function
您需要从函数返回结果,即
DataRandom=dtmRandomDate
。目前,您的DataRandom()
函数无法返回值。您好@Lankymart,首先让我感谢您的回答。帮个大忙。当你是一名编程学徒时就会发生这种情况,是的,我忘了返回结果。关于我没有放弃的双质量,只是在这里传错了。如果将来有人需要的话,我会把所有的功能都留在图书馆集成。再次感谢。问候。没问题@Rik,很高兴它有帮助。请删除函数中的随机调用。(每个会话/运行应只调用一次Randomize,因为它会初始化生成器)请从函数中删除对Randomize的调用。(每个会话/运行只需调用一次Randomize,因为它会初始化生成器)Done@Ekkehard.Horner。但这意味着,如果我在会话/运行时没有在其他任何地方调用Randomize,我将不得不使用函数调用它,对吗?对于简单脚本,在开始时调用Randomize;对于更复杂的情况,请使用标志确保只调用一次。