查看完整版本: WR代码交流贴

QA_BAY 2004-11-22 16:44

WR代码交流贴

希望大家拿自己平时写的代码出来交流一下吧,
让大家一起进步!

QA_BAY 2004-11-22 16:46

变量申明 使用范围 使用时间 在何处申明
Auto 局部 函数结束
Static 局部 测试单元停止 函数,测试单元,模块
Public 全局 测试单元停止 函数,测试单元,模块
Extern 全局 测试单元停止 函数,测试单元,模块
这四个经常用在写FUNCTION时用到!

生如火花 2004-11-22 16:52

支持一下
###用于生成一个小于等于k的整数(k>1)
public function random(k,n)
{
n=int((k-1)*rand()+1);
report_msg("n="n);
return n;
}
random(1000,n);

#####返回k整除m的结果
public function div(k,m,n)
{
n=(k-k%m)/m;
report_msg(n);
return n;
}
div(k,m,n);

[[i] Last edited by 生如火花 on 2004-12-7 at 15:32 [/i]]

lousia 2004-11-22 17:03

[quote]Originally posted by [i]QA_BAY[/i] at 2004-11-22 04:46 PM:
变量申明 使用范围 使用时间 在何处申明
Auto 局部 函数结束
Static 局部 测试单元停止 函数,测试单元,模块
Public 全局 测试单元停止 函数,测试单元,模块
Extern 全局 测试单元停止 函数,测试单元 ... [/quote]

好东西。我从来没用过,能说的详细一点吗?举个例子吧,
欢迎大家加我,一起交流:lousia_qian@hotmail.com

生如火花 2004-11-22 17:10

有时间发贴等别人告诉你某个函数的用法,还不如自己在TSL帮助里学习,要想学到东西,就不能太懒的。不是讨论代码的内容应该发新贴。这样便于其他人的交流

shyfish 2004-11-22 17:53

贴一段,很喜欢用Data table的:
dataTable = "dialNum.xls";
ddt_open(dataTable, DDT_MODE_READ);
ddt_get_row_count(dataTable, ddtRowCount);
for(ddtIndex = 1; ddtIndex <= ddtRowCount; ddtIndex++)
{
                ddt_set_row(dataTable, ddtIndex);
        number = ddt_val(dataTable, "DialNum");
        divNum = 1000000000;
        for(i = 0; i < 10; i++)
        {
                curNum = int(number / divNum);
                switch(curNum)
                {
                        case 0:  button_press("Button0"); break;
                        case 1:  button_press("Button1"); break;
                        case 2:  button_press("Button2"); break;
                        case 3:  button_press("Button3"); break;
                        case 4:  button_press("Button4"); break;
                        case 5:  button_press("Button5"); break;
                        case 6:  button_press("Button6"); break;
                        case 7:  button_press("Button7"); break;
                        case 8:  button_press("Button8"); break;
                        case 9:  button_press("Button9"); break;
                }
                number = number % divNum;
                divNum = int(divNum / 10);
        }
}
ddt_close(dataTable);

用途:
应用程序上有10个按钮(自定义的,被我Virtual成了Button1-10),在data table(自定义的Datable,没有从数据库导入)里面存的是10位的整数:比如1234567890,然后根据该整数来依次序地按对应的按钮;如对于1234567890依次按Button1, Button2.....
希望大家有什么对于Data Table的使用心得拿出来交流交流啊

xob 2004-11-22 21:16

tl_step_once

report_msg

很好用的,呵呵

QA_BAY 2004-11-23 22:13

检测一个窗口的弹出!
iResult = win_exists("prjGolf");
if (iResult == E_OK)
{
    set_window ("prjGolf", 0);
        obj_type ("是(Y)","sdssss");
        button_press ("否(N)");}
        set_window("预定及客人管理-新预定_2", 1);
               obj_wait_bitmap("ThunderRT6CommandButton_3_1", "Img1", 1);
               button_press ("ThunderRT6CommandButton_3_1");}
else
      return;

生如火花 2004-11-24 22:42

[quote]Originally posted by [i]QA_BAY[/i] at 2004-11-23 10:13 PM:
检测一个窗口的弹出!
iResult = win_exists("prjGolf");
if (iResult == E_OK)
{
    set_window ("prjGolf", 0);
        obj_type ("是(Y)","sdssss");
        button_press ... [/quote]
如果不能确定窗口什么时候弹出,可以在脚本的最开始添加
define_popup_exception ("exception_name","function_name", "action_window" );
public function function_name();
{
.....#检测窗口并做出操作。
}
exception_on("exception_name");

QA_BAY 2004-11-25 22:41

#        Function:                                getRandom
#        Purpose:        Generate integer random numbers between a range, and place    them in an output array/
#        Parameters:                in Minimum (integer), in Maximum(integer), out RandomArray (array that holds integers)
#        Return Values:         Numeric Error codes: 0: OK; -1: error



load("win32api");

public function getRandom(in iMin, in iMax, out aRand[]) {
        auto iRange, i;
        if (iMin < 0 || iMin > iMax || (iMin + iMax)==0)
                return -1;
        if (int(iMin) != iMin || int(iMax) != iMax)
                return -1;
        iRange=(iMax-iMin) + 1;
        srand(GetTickCount());
        for (i=0; i<iRange; i++)
                aRand[i] = int(rand()*iRange) + iMin;
        return 0;
        }


#When used with the following calling code, random output listings were created.
if (getRandom(1,5,aRnd)==E_OK)
{
    buf="";
        for (i=0; i<10; i++)
                buf = buf & " " aRnd[i];
        print(buf);
        }
texit;

这是WR中的一个例子,
本人试过了可以运行,
你们可以copy到你的机子上运行.
getRandom()里面的数据可以改变!
大家一起学习

mojinde 2005-1-26 11:50

贴一段吧

在51TESTING,这么久了,只索取,不给予,不好意思,这是在生如火花的指导下完成的:主要作用是检查输入框对特殊字符的控制
# ThunderRT6FormDC
        set_window ("ThunderRT6FormDC", 1);
        button_press ("新建[N]");

# 托运客户档案
#定义非法字符输入字段
ff="12#%$#^$%&%^"
ff1="12345678"
#  注:若要用ff来测试的话,就把(set_window "提示",和button_press ("确定")注销掉)
#把ff分别输入到以下的输入框
        set_window ("托运客户档案", 3);
        edit_set ("ThunderRT6TextBox", "1");
        obj_type ("ThunderRT6TextBox_1", ff);
        button_press ("保存[S]");
#弹出非法字符输入的提示信息
if(win_exists("石家庄市汽车道路货物运输企业信息管理系_0")==E_OK)
{
    report_msg("输入的字符不合法!");
#关闭提示窗口
    win_close("石家庄市汽车道路货物运输企业信息管理系_0");
}
    else report_msg("输入的字符合法.");
# 提示
# set_window ("提示", 2);
#        button_press ("确定");
# 托运客户档案
        set_window ("托运客户档案", 1);
        button_press ("退出[E]");
我还是想说一声:谢谢生如火花!

肚皮 2005-3-16 13:44

[quote]Originally posted by [i]生如火花[/i] at 2004-11-24 10:42 PM:

如果不能确定窗口什么时候弹出,可以在脚本的最开始添加
define_popup_exception ("exception_name","function_name", "action_window" );
public function function_name(); ... [/quote]
[color=Red][font=宋体]这段代码我没理解,可能是我没有“scenario"的概念,可以让生如火花同志给我些指导吗,最好详细讲讲。[/font][/color]

肚皮 2005-3-16 13:50

[quote]Originally posted by [i]生如火花[/i] at 2004-11-24 10:42 PM:

如果不能确定窗口什么时候弹出,可以在脚本的最开始添加
define_popup_exception ("exception_name","function_name", "action_window" );
public function function_name(); ... [/quote]
[color=Red][font=宋体]这段代码我没理解,可能是我没有“scenario"的概念,可以让生如火花同志给我些指导吗,最好详细讲讲。[/font][/color]

生如火花 2005-3-18 13:01

[quote]Originally posted by [i]肚皮[/i] at 2005-3-16 01:50 PM:

[color=Red][font=宋体]这段代码我没理解,可能是我没有“scenario"的概念,可以让生如火花同志给我些指导吗,最好详细讲讲。[/font][/color] [/quote]
请看这里
[url]http://bbs.51testing.com/viewthread.php?tid=5223&fpage=1&highlight=%2B%C9%FA%C8%E7%BB%F0%BB%A8[/url]

sinpa 2005-4-8 14:16

我顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶!!!!!!!

credit_hly 2005-6-23 20:09

受益非浅!!!

kai_top 2005-7-22 17:47

看了就很羡慕,认真学习。

simen12 2005-8-10 11:47

大开眼界,服!我要努力呀

PK_DUTBSK 2005-8-12 12:07

..........努力看 啊

rien2128 2005-8-12 12:37

真是厉害啊,高手就是高手。

hihihaha910 2005-8-13 09:32

学习了WR一段时间了,再来看这些贴,真是受益非浅

kai_top 2005-8-18 14:55

呵呵,看了生如火花的代码,在实践中学以致用,嘿嘿
#以下是我的实际运用,主要功能是:随机生成500个大于1000小于2000的数值,如果在这些数值生成过程中,生成重复数值,此时如果系统弹出错误窗口,代码就进行错误数统计,并且直接关闭这个窗口,然后继续生成数值;(这段代码可以用在登录窗口(如暴力**),可以用在自动生成对象名称等)呵呵,代码很简单;
public function random(k,n)
{
n=((k-1)*rand()+1000);
return(n);
}
for(i=1;i<=500;i++)
{
num=num+1
m=random(1000,n);
wait(1s);
if(win_exist("error_win_name")==E_OK)
{set_window("error_win_name",time);
static_get_text("lable_name",text);
tl_step("error_message",1,"error.content is "text";time is "num".");
button_press("button_name");
set_window("win_name",time);
}
else
{
set_window("win_name",time);
}
-

[[i] Last edited by kai_top on 2005-9-20 at 01:18 [/i]]

kai_top 2005-8-18 15:04

modify

modify

[[i] Last edited by kai_top on 2005-9-20 at 01:15 [/i]]

kelly651 2005-8-22 15:21

好人啊.受益非浅呀...

kelly651 2005-8-25 14:26

好人啊....继续啊

xyuan007 2005-12-7 16:33

我也贴一个,读取xml文件并更新若干结点信息后保存到另一文件!
#¶ÁÈ¡xml1302Îļþ£¬²¢½«ÏàÓ¦ÐÅÏ¢¸üÐÂ
public function file1302read(in filepath,in mysoid,in mysid)
{

#´ò¿ª1302Îļþ       
        auto filename = filepath & "1302.xml";
        auto filename1;
       
        auto xml[];
        auto i = 0;
        auto j = 0;
        auto line;
        auto xyuan;
        auto pos;
         
        auto res = file_open(filename,0);

        if(res != E_OK)
        {
                printf("file 1302 open error!");
        }

#´ÓÎļþÖжÁ³öÄÚÈݲ¢Ð´ÈëÊý×é       
        while(file_getline(filename,line) == 0)
        {
                xml[i] = line;
                i++;
        }
       
        file_close(filename);
       
       
#¸üÐÂRequestID       
        for(j = 0; j < i; j++)
        {
                xyuan = xml[j];
               
                if( index(xyuan,"<RequestId>") > 0 )
                {
                        pos = index(xyuan,"<RequestId>");
                        xyuan = substr(xyuan,1,pos+10) & "front_" & get_time() & "</RequestId>";
                        xml[j] = xyuan;
                        break;
                }
        }

#¸üÐÂServiceOrderID       
        for(j = 0; j < i; j++)
        {
                xyuan = xml[j];
               
                if( index(xyuan,"<ServiceOrderId>") > 0 )
                {
                        pos = index(xyuan,"<ServiceOrderId>");
                        xyuan = substr(xyuan,1,pos+15) & mysoid & "</ServiceOrderId>";
                        xml[j] = xyuan;
                        break;
                }
        }               
       
#¸üÐÂServiceID       
        for(j = 0; j < i; j++)
        {
                xyuan = xml[j];
               
                if( index(xyuan,"<ServiceId>") > 0 )
                {
                        pos = index(xyuan,"<ServiceId>");
                        xyuan = substr(xyuan,1,pos+10) & mysid & "</ServiceId>";
                        xml[j] = xyuan;
                        break;
                }
        }       
       
#´ò¿ªÎļþ²¢Ð´ÈëÒѸüеÄÄÚÈÝ       
        filename1 = filepath & "13021.xml";
        res = file_open(filename1,1);
       
        if(res != E_OK)
        {
        tl_step("file 1302 write open",1,"file open error!");
        }
       
        for(j = 0; j < i; j++)
        {
                file_printf(filename1,xml[j],j+1);
        }
       
        file_close(filename1);       
}

yangbinyan0216 2006-3-23 19:55

谢谢,都是好人啊,受益非浅

chl6018 2006-3-29 16:44

# part 1 &sup1;&brvbar;&Auml;&Uuml;&iquest;&ordf;&sup1;&Oslash;&sup2;&iquest;·&Ouml;
# ·&iuml;&raquo;&Euml;&Eacute;&frac12;
        set_window ("·&iuml;&raquo;&Euml;&Eacute;&frac12;", 2);
        i=0;
        count=0;
        times=5;
        while(i<times)
        {
        #&Euml;&aelig;&raquo;ú&sup2;ú&Eacute;ú&frac12;&oslash;&ETH;&ETH;&Iuml;&Acirc;&Ograve;&raquo;&acute;&Icirc;&iquest;&ordf;&sup1;&Oslash;&sup2;&Ugrave;×÷&micro;&Egrave;&acute;&yacute;&micro;&Auml;&Ecirc;±&frac14;&auml;
        x=int(rand()*5)+5;
        #&Euml;&aelig;&raquo;ú&sup2;ú&Eacute;ú&frac12;&oslash;&ETH;&ETH;&Iuml;&Acirc;&Ograve;&raquo;&acute;&Icirc;&iquest;&ordf;&sup1;&Oslash;&sup2;&Ugrave;×÷&micro;&Auml;&Eacute;è±&cedil;
        y=int(rand()*9)+1;
        #pause(x);
        #pause(y);
        wait(x);
        set_window ("·&iuml;&raquo;&Euml;&Eacute;&frac12;", 2);
        button_press("vir_button"&y);
        count=count+1;
        wait(0.5);
       
        if (win_exists("&Igrave;á&Ecirc;&frac34;&ETH;&Aring;&Iuml;&cent;")==E_OK)
        {
        set_window ("&Igrave;á&Ecirc;&frac34;&ETH;&Aring;&Iuml;&cent;", 1);
        button_press ("&Egrave;·&para;¨");
       
        wait(2);
                if (win_exists("Afx:400000:0:10011:110005f:0")==E_OK)
                {
                win_get_text("Afx:400000:0:10011:110005f:0", text);
                text=substr(text,1,4);
                time=time_str(get_time());
               
                        if (text=="&iquest;&Oslash;&Ouml;&AElig;&Eacute;è±&cedil;")
                        {
                                report_msg(time&"&sup1;&Oslash;±&Otilde;&micro;&Uacute;"&y&"&Acirc;·&Eacute;è±&cedil;&sup3;&Eacute;&sup1;&brvbar;");
                                #pause(text);
                        }
                        else
                                {
                                if (text=="&Iacute;&oslash;&Acirc;&ccedil;&sup1;&Ecirc;&Otilde;&Iuml;")
                                        {
                                        report_msg(time&"·&thorn;&Icirc;&ntilde;&sup3;&Igrave;&ETH;ò&Euml;&Agrave;&Aacute;&Euml;&raquo;ò&Iacute;&oslash;&Acirc;&ccedil;&para;&Iuml;&iquest;&ordf;");
                                        report_msg(text);
                                        break;
                                        }
                                else
                                        {
                                        report_msg(time&"&sup3;&Igrave;&ETH;ò&sup3;&ouml;&Iuml;&Ouml;&Ograve;ì&sup3;&pound;");
                                        report_msg(text);
                                        #pause(text);
                                        break;
                                        }
                                }
                }
                               
        }
       
        else
        {

        wait(2);
                if (win_exists("Afx:400000:0:10011:110005f:0")==E_OK)
                {
                win_get_text("Afx:400000:0:10011:110005f:0", text);
                text=substr(text,1,4);
                time=time_str(get_time());
                        if (text=="&iquest;&Oslash;&Ouml;&AElig;&Eacute;è±&cedil;")
                        {
                                report_msg(time&"&acute;ò&iquest;&ordf;&micro;&Uacute;"&y&"&Acirc;·&Eacute;è±&cedil;&sup3;&Eacute;&sup1;&brvbar;");
                                #pause(text);
                        }
               
                        else
                        {
                        if (text=="&Iacute;&oslash;&Acirc;&ccedil;&sup1;&Ecirc;&Otilde;&Iuml;")
                                {
                                report_msg(time&"·&thorn;&Icirc;&ntilde;&sup3;&Igrave;&ETH;ò&Euml;&Agrave;&Aacute;&Euml;&raquo;ò&Iacute;&oslash;&Acirc;&ccedil;&para;&Iuml;&iquest;&ordf;");
                                report_msg(text);
                                break;
                                }
                        else
                                {
                                report_msg(time&"&sup3;&Igrave;&ETH;ò&sup3;&ouml;&Iuml;&Ouml;&Ograve;ì&sup3;&pound;");
                                report_msg(text);
                                #pause(text);
                                break;
                                }
                        }
                        }
               
        }
       
        wait(5);
        time=time_str(get_time());
        if (win_exists("&Igrave;á&Ecirc;&frac34;&ETH;&Aring;&Iuml;&cent;!")==E_OK)
        {
                report_msg(time&"·&thorn;&Icirc;&ntilde;&sup3;&Igrave;&ETH;ò&Euml;&Agrave;&Aacute;&Euml;&raquo;ò&Iacute;&oslash;&Acirc;&ccedil;&para;&Iuml;&iquest;&ordf;");
                break;
        }
        #&Egrave;&ccedil;&sup1;&ucirc;&para;&Ocirc;&Euml;ù&Oacute;&ETH;&micro;&Auml;&Eacute;è±&cedil;&frac12;&oslash;&ETH;&ETH;&iquest;&ordf;&sup1;&Oslash;&sup2;&Ugrave;×÷&micro;&Auml;&raquo;°&Ntilde;&Oacute;&Ecirc;±15&Atilde;&euml;&pound;&not;&micro;&yen;&cedil;&ouml;&Eacute;è±&cedil;&sup2;&raquo;&Ocirc;&Uacute;&Ntilde;&Oacute;&Ecirc;±*/
        if(y==10)
        {
        wait(10);
        }
       
        i++;
        }
        report_msg("set control"&times&"times");
        report_msg("total control"&count&"times");
        #win_close("·&iuml;&raquo;&Euml;&Eacute;&frac12;");
       
        #part II &Iuml;&micro;&Iacute;&sup3;&AElig;&auml;&Euml;&ucirc;&sup1;&brvbar;&Auml;&Uuml;&sup2;&iquest;·&Ouml;



对一个远程控制软件的测试,希望多多指点

wonew1228 2006-12-6 17:00

好贴!

感谢各位!

wonew1228 2006-12-19 16:56

顶一下,好东西不能让他沉了

pangge369 2006-12-20 16:37

好东西!受益不少呀!

lzq123335 2007-1-10 10:42

[quote]原帖由 [i]shyfish[/i] 于 2004-11-22 17:53 发表
贴一段,很喜欢用Data table的:
dataTable = "dialNum.xls";
ddt_open(dataTable, DDT_MODE_READ);
ddt_get_row_count(dataTable, ddtRowCount);
for(ddtIndex = 1; ddtIndex <= ddtRowCoun ... [/quote]


dataTable = "dialNum.xls";
ddt_open(dataTable, DDT_MODE_READ);
ddt_get_row_count(dataTable, ddtRowCount);
for(ddtIndex = 1; ddtIndex <= ddtRowCount; ddtIndex++)
{
                ddt_set_row(dataTable, ddtIndex);
        number = ddt_val(dataTable, "DialNum");
        divNum = 1000000000;
        for(i = 0; i < 10; i++)
        {
                curNum = int(number / divNum);
                 button_press("Button"&i);
                               number = number % divNum;
                divNum = int(divNum / 10);
        }
}
ddt_close(dataTable);

这样是否好些呢?

jacky9947 2007-3-23 16:49

谢谢大家

chinalkl 2007-6-21 17:53

到现在才发现测试,特别是WR的博大精深.
有很多代码都不知道是怎么输入进去的,是录制的时候自动生成的吗?

chenghan1980 2008-7-14 12:12

很牛很强大

peter.zheng 2008-8-14 11:21

顶!
页: [1]
查看完整版本: WR代码交流贴