51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2652|回复: 8
打印 上一主题 下一主题

我写的一个脚本例子,贴出来请大家指点一下

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-2-25 17:00:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
##############################################################################################
# 测 试 名称      :   参数设 置
# 对 象          :
# 描述          :   1.  从Setting配置文本中初始读入的配置是否正确;
#                             2. 设 置窗口中输 入的值 的范围 和不合法输 入的处 #                             理;并检 查 是否写入配置文件
#               
#
#
#作者: 
#日期: 2005/02/23
#修改:
#修改日期
####################################################################################################static lib_path = "D:\\IEC103MSWTest\\myIEC103MSWParaConfigTest2\\IEC103Test_lib";
static file_name_new = "D:\\IEC103MSWTest\\app\\Setting.ini";
static file_name_old  = "D:\\IEC103MSWTest\\myIEC103MSWParaConfigTest2\\Settingnew.ini";
static file_temp;#= "D:\\IEC103MSWTest\\myIEC103MSWParaConfigTest2\\temp.ini";
static app_path =  "D:\\IEC103MSWTest\\app\\IEC103MSW.exe";
static work_dir ="D:\\IEC103MSWTest\\app";
static file_path                 = getvar("testname");
static table_name        = "setting.xls";
static copyflag;
static data_cycTime_old,data_bufSize_old, data_cycTime_new, data_bufSize_new;
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
 楼主| 发表于 2005-2-25 17:00:52 | 只看该作者
reload(lib_path);
#############################################################################################
file_close(file_name);
#先检 查 应 用程序是否启 动,,如果已经 启 动 ,先关 闭 应 用程序
# 启 动 应 用程序
        rc = open_IEC103MSW();
        if (rc == E_GENERAL_ERROR)
        {
                tl_step("initialization", FAIL, couldnt_open_flight);
                texit;
        }
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2005-2-25 17:01:15 | 只看该作者
#比较 从配置文件中读 取的是否正确 (初始化是否正确 )
        compareparaconfig();
    copyflag = 1;
#参数输 入:有效性检 查
table = file_path & "\\" table_name;

ddt_close(table);
file_close(file_name_old);
file_close(file_name_new);
j = 0;
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2005-2-25 17:01:43 | 只看该作者
ddt_open(table);
do
{  
    if(copyflag = 1)
    {     
        #把配置文件Setting.ini保存为 新的配置文件Settingnew.ini
        file_open(file_name_new,FO_MODE_READ);
                file_open(file_name_old ,FO_MODE_WRITE);
               
        i=0;
                while(file_getline(file_name_new ,line) ==0)
                {
                    i++;
                    file_printf(file_name_old,s&line&"\r\n");
                }            
        file_close(file_name_new);
        file_close(file_name_old);
               
                #从Settingnew.ini文件中获 取信息
        file_open(file_name_old ,FO_MODE_READ);
               
        i=0;
                while(file_getline(file_name_old ,line) ==0)
                {  
                    switch(i)
                        {
                                case 0:
                                     break;
                                case 1:
                                         data_cycTime_old = substr(line,6,9);
                                         break;
                                case 2:
                                         data_bufSize_old = substr(line,7,9);
                                         break;
                                default:
                                         break;
                         }
                         i++;
                 }       
                 file_close(file_name_old);
    }
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2005-2-25 17:02:05 | 只看该作者
# IEC103规约主站测试工具
                 set_window ("IEC103规约主站测试工具", 2);
                menu_select_item ("控制(V);设 置");        
           # 设置
                 set_window ("设置", 7);
                edit_set ("循环周期:", ddt_val(table,"循环周期"));
                edit_set ("缓冲区大小:", ddt_val(table,"缓冲区大小"));
           # button_press ("取 消");
            wait(2);
                button_press ("确 定");
############################################################################################
                # 两 种 结 果:1.) 输 入不合法 2.) 合法的输 入。
#############################################################################################
        #当输 入不合法时 ,出现 信息提示
    if (win_exists ("IEC103MSW Message",1) == E_OK)#在结 果中显 示对 话 框,显 示期望值 和实 际 值
        {
             j++;
             set_window ("IEC103MSW Message");
             # Check to see if the Error message reported on the IEC103MSW Message
                 # window is correct.  If it is not; the report message displays that
                 # the test passed but had an incorrect error message.
                   
                 #当数据表中的Message信息和实 际 应 显 示的信息匹配时,,执 行以下语 句。
         if (static_check_text("Message", ddt_val(table, "Error_Message")) == E_OK)
                     {
                              rc=ddt_get_current_row(table,row);
                                  if(rc != E_OK)
                                 {
                                      tl_msg = sprintf(get_current_row_failed, table, rc);
                                         tl_step (illegal_parameter, FAIL,tl_msg);
                                         row =0;
                                 }
                                         tl_msg = sprintf(illegal_parameter_rec, row);
                                         tl_step (tl_msg, PASS, improper_parameter);
                                 }
                                # 当数据表中的Message信息和实 际 应 显 示的信息不匹配时 ,执 行 以下语 句。
                                 else
                                {
                                         static_get_text ("Message", text);
                                         tl_msg = sprintf(incorrect_msg_improper_parameter,ddt_val(table, "Error_Message") , text);
                                         tl_step (illegal_parameter, FAIL,tl_msg);
                                        error_flag = 1;
                                }
                # IEC103MSW Message
        set_window ("IEC103MSW Message", 1);
            button_press ("确定");
                if(win_exists ("IEC103MSW Message",1) == E_OK)
                    {
                        tl_step("关 闭 信息提示框 ",FAIL,"按一次确 定按钮 后无法关 闭 信息提示框");  
                            set_window ("IEC103MSW Message", 1);
                    button_press ("确定");
                            #关 闭 设 置窗口          
                    set_window ("设置", 1);
                    button_press ("取 消");
                    }

               
                file_temp = j; #循环 保存比较 后的文件,否则 会冲掉前一次的保存结 果
                rc = file_compare(file_name_old,file_name_new,file_temp);
                if(rc != E_OK)
                {
                        copyflag = 1;
                        #如果不相等,从Setting.ini(file_name_old)中读 取循环 周期和缓 冲区大小
                        file_open(file_name_new ,FO_MODE_READ);   
                i=0;
                        while(file_getline(file_name_new ,line) ==0)
                        {
                                switch(i)
                                    {
                                        case 0:
                                                 break;
                                        case 1:
                                                 data_cycTime_new = substr(line,6,9);
                                                     break;
                                        case 2:
                                                 data_bufSize_new = substr(line,7,9);
                                                     break;
                                            default:
                                                 break;
                                    }
                            i++;
                                }
                                file_close(file_name_new);
                               
                                if((data_cycTime_old != data_cycTime_new)&&(data_bufSize_old != data_bufSize_new))
                                {
                                    tl_msg = sprintf("输 入的循环 周期= %s,输 入的缓 冲区大小 = %s,配置文件中的循环 周期= %s,配置文件中的缓 冲区大小 = %s",ddt_val(table,"循环周期"),ddt_val(table,"缓冲区大小"),data_cycTime_old,data_bufSize_old);
                            tl_step("程序功能错 误 ",FAIL,tl_msg);
                                }
                                if((data_cycTime_old != data_cycTime_new)&&(data_bufSize_old == data_bufSize_new))
                                {               
                              report_msg("程序可能出现 功能错 误,,请 检 查 !!!,判断依据:如果输 入的循环 周期不为 合法值 ,则 功能错 误 ,认 为 不合法的输 入写入到了配置文件");
#                   tl_msg = sprintf("输 入的循环 周期= %s,输 入的缓 冲区大小 = %s,配置文件中的循环 周期= %s,配置文件中的缓 冲区大小 = %s",ddt_val(table,"循环周期"),ddt_val(table,"缓冲区大小"),data_cycTime_old,data_bufSize_old);
                    tl_msg = sprintf("输 入的循环 周期= %s,配置文件中的循环 周期= %s",ddt_val(table,"循环周期"),data_cycTime_old);
                            tl_step("程序可能出现 功能错 误,",FAIL,"不合法的输 入可能写入到了配置文件,请 检 查 !!!");
                                #输 出:从Setting.ini(file_name_old)中读 取循环 周期和缓 冲区大小,和输 入的循环 周期和缓 冲区大小。
                    #自己判断去。哈哈。不然不好解决了。
                                tl_step("请 比较 然后作出判断",FAIL , tl_msg);
                            }
                                if((data_cycTime_old == data_cycTime_new)&&(data_bufSize_old != data_bufSize_new))
                            {
                                    report_msg("程序可能出现 功能错 误,,请 检 查 !!!,判断依据:如果输 入的缓 冲区大小不为 合法值 ,则 功能错 误 ,认 为 不合法的输 入写入到了配置文件");
                    tl_msg = sprintf("输 入的缓 冲区大小 = %s,配置文件中的缓 冲区大小 = %s",ddt_val(table,"缓冲区大小"),data_bufSize_old);
                                tl_step("程序可能出现 功能错 误,",FAIL,"不合法的输 入可能写入到了配置文件,请 检 查 !!!");
                                #输 出:从Setting.ini(file_name_old)中读 取循环 周期和缓 冲区大小,和输 入的循环 周期和缓 冲区大小。
                    #自己判断去。哈哈。不然不好解决了。
                                tl_step("请 比较 然后作出判断",FAIL , tl_msg);
                                }
                                                               
        }
          
    }
        else
        {
        copyflag = 0;
                tl_msg = sprintf(proper_parameter,ddt_val(table, "Error_Message") );
                 tl_step ("输 入", PASS, tl_msg );
        }
       
}while (ddt_next_row(table) == E_OK);
       
ddt_close(table);
# End of test
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2005-2-25 17:05:23 | 只看该作者
我刚学习用这个工具写测试脚本,被测程序是我们自己开发的一个测试工具,很烂。简直没法对它进行测试。我的脚本可能很复杂,或者很幼稚,有高手指点一下我会很高兴的。先谢谢。呵呵。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2005-2-25 17:58:48 | 只看该作者
把它写成文件吧,然后上传上来,
值得研究!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2005-2-25 18:53:20 | 只看该作者
这么多就不看了^^
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2005-2-26 09:37:06 | 只看该作者
我不会上传。呵呵。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-10 22:33 , Processed in 0.077272 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表