|
具体我也不清楚,只是在一个文档上看到这样一段话
sdlkfj2
4.2 自定义re_match函数
WinRunner自带了一个叫做match的函数,用来判断一个串是否符合正则表达式。但是,WinRunner7.5中的match函数对过于复杂的正则表达式的支持不是很好,鉴于日期等的正则表达式的复杂度比较高,我们使用了一个由EMOS Framework提供的已编译过的函数re_match()。
这个新的函数实现了一个类似于perl语言中正则表达式查询和匹配功能,弥补了原来match函数的不足。
public extern._int re_match(in._string str,
in._string re,
out._int m_pos,
out._int m_len,
inout._string detail)
说明:
将串与正则表达式做匹配。输出detail中的子匹配结果可以通过另外两个函数re_get_details()和re_get_match()获得。
参数:
str – 要匹配的串
re – 正则表达式
m_pos – 匹配发生的开始位置
m_len – 匹配的长度
detail – 匹配的细节
返回值:
0 = 不匹配, 1 =匹配,m_pos和m_len分别表示匹配的开始位置和匹配的长度
下面是一段使用该函数的代码:
input_string="2005年6月1日";
pattern = "(\\d{2}|\\d{4})-\\d{1,2}-\\d{1,2}|\\d{4}年\\d{1,2}月\\d{1,2}日\\s*(星期[一二三四五六七])?";
if (re_match(input_string, pattern, m_pos, m_len, detail)){
= tl_step("Locale sensitive date format check", 0 , "Date format is OK");
treturn("ASSED");
}else
{
tl_step("Locale sensitive date format check", 1 , "Date format is incorrect");
treturn("FAILED");
}
注意:这只是一个简单的例子。实际应用中,input_string和pattern都可以参数化到文件,在不同的locale下读取不同的文件动态获得,以保证脚本的通用性。
关于EMOS Framework,它以区别与其他Framework的独特方式实现了一个WinRunner自动化脚本开发的简单但却强大的框架,EMOS是专门为WinRunner设计的,整个EMOS几乎都是用WinRunner自己的TSL语言实现的。关于EMOS Framework的详细介绍请参考http://emos-framework.sourceforge.net/。sdlkfj2sdlkfj2
[ 本帖最后由 shiwomyw 于 2006-6-9 14:30 编辑 ] |
|