牛人是怎样用函数实现本地化测试的

通过几个函数就可以对软件本地化进行测试,真牛,佩服!




############################################################
# Function:
#       translate_get_value()
#
# Description:
#       Looks up a given value and gets the translated value.
#
# Parameters:
#       translate_from - What to translate from (column heading 1)
#       translate_to - What to translate to (column heading 2)
#       from_value - Value to translated
#       to_value - Translated value
#
# Returns:
#       0 on success, or standard WinRunner error code on failure.
#       
# Syntax:
#       rc = translate_get_value(in translate_from, in translate_to, in from_value, out to_value);
#
# Examples:
# pause(translate_get_value("English", "Spanish", "Yes", value) &" " & value);
# pause(translate_get_value("Spanish", "English", "Uno", value) & " " & value);
############################################################
function translate_get_value(in translate_from, in translate_to, in from_value, out to_value)
{
        auto rc;                       #Used to store the return code
        auto table;            #Used to store the translation table
        auto temp_value;       #Used to read the from_value from translation table
 
        # Set the value for the translation table, and open it
        table = getvar("testname") & "\\default.xls";
        rc = ddt_open (table);
        if (rc != E_OK)
        {
               to_value = "ERROR: Table could not be opened!";
               return (rc);
        }
 
        # Check to see if the translate_from is a column in the transation table
        rc=ddt_is_parameter(table, translate_from);
        if (rc!=E_OK)
        {
               to_value = "ERROR: Invalid column header [" & translate_from & "]!";
               ddt_close(table);
               return (rc);
        }
 
        # Check to see if the translation_to is a column in the transation table
        rc=ddt_is_parameter(table, translate_to);
        if (rc!=E_OK)
        {
               to_value = "ERROR: Invalid column header [" & translate_to & "]!";
               ddt_close(table);
               return (rc);
        }
 
        # Assume that the from_value is not found
        to_value = "ERROR: Value is not found [" & from_value & "]!";
        rc = E_STR_NOT_FOUND;
 
        # Search the translation table for the from_value
        do
        {
               temp_value=ddt_val(table,translate_from);
               if (temp_value == from_value)
               {
                       # Return the translated value
                       to_value=ddt_val(table, translate_to);
                       rc = E_OK;                     
               }
        } while (ddt_next_row(table)==E_OK);
 
        # Close the translation table and exit
        ddt_close(table);
        return (rc);
}
 
############################################################
# Function:
#       translate()
#
# Description:
#       Returns the translated value given a lookup value.
#
# Parameters:
#       translate_from - What to translate from (column heading 1)
#       translate_to - What to translate to (column heading 2)
#       from_value - Value to translated
#
# Returns:
#       translated value, or empty string on error.
#       
# Syntax:
#       rc = translate(in translate_from, in translate_to, in from_value);
#
# Examples:
# pause(translate("English", "Spanish", "Yes"));
# pause(translate("Spanish", "English", "Uno"));
############################################################
function translate(in translate_from, in translate_to, in from_value)
{
        auto to_value;
        auto rc;
 
        rc = translate_get_value(translate_from, translate_to, from_value, to_value);
 
        if (rc == E_OK) 
               return (to_value);
        else
               return ("");
}
        
 

posted on 2006-10-26 12:18  测试者家园  阅读(1395)  评论(2编辑  收藏  举报

导航