趋势科技实习录—编写case

10:47Penny Jin (QA-CN)你再帮我加5个case,分别是SetReportDir,SetPatternDir,SetMaxBackupFileNumber,SetMaxBackupFileItemSize,SetMaxDebugLogFileNumber,都是通过给TestiDCE 传参数实现的
TestiDCE 用这个最新的,\\10.204.16.28\home\DCE\Penny\iDCE\TestiDCE 这个是64bit的,所以你可以用1025 64bit 的build \\10.204.16.28\home\DCE\build 1.0.1025\bin\64
case怎么写,课参考下DCEINIAndLib\TSCLib, 这里也包含了一些设置接口的case,只是这部分case是通过设置tsc.ini 实现的,而你要加的case是通过给TestiDCE传参数实现的

我已经加的2个case,是set debug dir 和backup dir


TSCSetting.py:

#
#   This library is created for operator: TSCSetting
#   Author:         [email protected]
#   Created Date:   date_now
#

## Import python modules here
## Build in mudules are preferred
import os
import time

## Below is the must 
import sys
import glob
import subprocess
import platform
if 'libs' not in sys.path:
    sys.path.append(os.getcwd() + '/libs')
import TestIDCELib
import ConfigIDCE

class TSCSetting:
    """ This library is created to make TestDCE command for TSCSetting
    
    1.  TSCSetting    
    
    """

    def __init__(self):
        self._testDCE = TestIDCELib.TestIDCELib()
            
    def TSCSetting(self, case_id, param):
        """ Run operator: TSCSetting
        
        @Param:
        
        case_id:    Unique ID of test case
        
        Return:
        
        None
        
        Example:
        | TSCSetting | CASE_ID |
        """
        TestDCE_command = 'TestiDCE -level=5 -ptn=TSCSetting.ptn -assign=%s %s' %(case_id, param)
        self._testDCE._execute_case(TestDCE_command, case_id)

    def log_decryptor_with_logFolder(self,debug_folder):
        """ IDCE debug log decryption,and decrypted file named TSCDebug2.log
        

        @Param:

        debug_folder : for decrpytor debug logs under this folder

        Return:

        If no error occur, it will return True
        """
        
        if not os.access(debug_folder,os.F_OK):
            print "\n*WARN*>> No debug log for decryption"
            return False
        
        #os.chdir(de	bug_folder)
        debug_logs = glob.glob('%s/debug*.log' %debug_folder)
        if(len(debug_logs) == 0):
            print "\n*WARN*>> Can't find debug log"
        else:
            debug_log = debug_logs[0]
            os.rename(debug_log,'%s/TSCDebug_temp.log'%debug_folder)
            decryption_command = ConfigIDCE.TESTENV_DIR + '/iLogDecryptor /Users/mac/TestIDCE/testenv/target/TSCSetting/debug/TSCDebug_temp.log /Users/mac/TestIDCE/testenv/target/TSCSetting/debug/TSCDebug2.log'
            subprocess.call(decryption_command,stdout=subprocess.PIPE,shell = True)

    def restore_TSCSetting(self,case_id):
        filelist=self.sort_file_by_date()
        count=len(filelist)
        if 0==count:raise AssertionError(">> Error: No restore file has exist")
        TestDCE_command = 'TestiDCE -level=5 -restore='
        for newfile in filelist:
            restorefile="/Users/mac/TestIDCE/testenv/backup/"+newfile 
            TestDCE_command +='%s:' % restorefile
        TestDCE_command= TestDCE_command[:-1]
        self._testDCE._execute_case(TestDCE_command, case_id)
 

    def sort_file_by_date(self):
        date_file_list=[]
        for folder in glob.glob("/Users/mac/TestIDCE/testenv/backup"):
            for file in glob.glob(folder+'/*.*'):
                stats=os.stat(file)
                lastmod_date=time.localtime(stats[8])
                date_file_tuple=lastmod_date, file
                date_file_list.append(date_file_tuple)
        date_file_list.sort()
        date_file_list.reverse()
     
        returnFile=[]
        for file in date_file_list:
            folder, filename=os.path.split(file[1])
            if '.dat' in filename or '.DAT' in filename:
                returnFile.append(filename)
                print '>>Now the backup file is %s' %filename
        return returnFile

    def create_specified_size_file(self, filename, filesize):
        """
        Run Operator: create_specified_size_file
        open the file in read mode
        @Param: filename    the file to be opened
        fiesize    filesize*1G
        Example: |create_specified_size_file| /Users/mac/TestIDCE/targetfile | 2
        """
        try:
            f = open(filename, 'w')
            block='1'*1024
            realsize=filesize*1024
            for i in range(realsize):
                f.write(block)
            f.close()
        except Exception, e:
            raise AssertionError(str(e))
                     

TSCSetting.in:

@TSC_SETTING
{
    id=1
    fmt=tsc_policy   
    get_os()
}

@tscsetting001
{
    id=1
    fmt=tsc_clean
    vsapiptn=tscsetting001,tscsetting002,tscsetting003,tscsetting004,tscsetting008

    set_TSC_flag(VIRUS_FOUND, "true")

CleanSection
    file_del("/Users/mac/TestIDCE/testenv/target/TSCSetting/TestDaemon_1")
jne(1) END
:END

}

@tscsetting005_1
{
    id=1
    fmt=tsc_clean
    vsapiptn=tscsetting005

    set_TSC_flag(VIRUS_FOUND, "true")

CleanSection
    file_del("/Users/mac/TestIDCE/testenv/target/TSCSetting/1.txt")
jne(1) END
:END

}
@tscsetting005_2
{
    id=1
    fmt=tsc_clean
    vsapiptn=tscsetting005

    set_TSC_flag(VIRUS_FOUND, "true")

CleanSection
    file_del("/Users/mac/TestIDCE/testenv/target/TSCSetting/2.txt")
jne(1) END
:END

}
@tscsetting005_3
{
    id=1
    fmt=tsc_clean
    vsapiptn=tscsetting005

    set_TSC_flag(VIRUS_FOUND, "true")

CleanSection
    file_del("/Users/mac/TestIDCE/testenv/target/TSCSetting/3.txt")
jne(1) END
:END

}

@tscsetting006
{
    id=1
    fmt=tsc_clean
    vsapiptn=tscsetting006
    
    file_exist("/Users/mac/TestIDCE/testenv/target/TSCSetting/normal.txt")
    jne(1) END
    file_exist("/Users/mac/TestIDCE/testenv/target/TSCSetting/second.txt")
    jne(1) END
    set_TSC_flag(VIRUS_FOUND, "true")

CleanSection
    file_del("/Users/mac/TestIDCE/testenv/target/TSCSetting/normal.txt")
    jne(1) END
    file_del("/Users/mac/TestIDCE/testenv/target/TSCSetting/second.txt")
       
:END   

}

@tscsetting007
{
    id=1
    fmt=tsc_clean
    vsapiptn=tscsetting007
    
    file_exist("/Users/mac/TestIDCE/testenv/target/TSCSetting/normal.txt")
    jne(1) END

    set_TSC_flag(VIRUS_FOUND, "true")

CleanSection
   
:END   

}

TSCSetting.txt :

*** Settings ***
Suite Setup       Prepare Suite Test Environment
Suite Teardown    Clean Suite Test Environment
Test Teardown     Clean Test Environment
Force Tags        TSCSetting
Test Timeout      5 minutes
Metadata          Author    xuan_qi
Metadata          Date    2015/3/12
Library           Operating System
Library           TSCSetting.py
Library           TestIDCELib
Library           FileAndFolder
Variables         ../../../Libs/ConfigIDCE.py

*** Variables ***
${TARGET_FOLDER}    /Users/mac/TestIDCE/testenv/target/TSCSetting

*** Test Cases ***
tscsetting001
    [Documentation]    *change debug dir by TestiDCE set tsc setting and expect can work*
    copyfile    /users/mac/TestIDCE/samples/process/normal/TestDaemon_1    ${TARGET_FOLDER}/TestDaemon_1
    create directory    ${TARGET_FOLDER}/debug
    TSCSetting    ${TEST_NAME}    -DebugDir=${TARGET_FOLDER}/debug
    log_decryptor_with_logFolder    ${TARGET_FOLDER}/debug
    log should contain    ${TARGET_FOLDER}/debug/TSCDebug2.log    file_del.*ret=1    ${1}
    File Should Not Exist    ${TARGET_FOLDER}/TestDaemon_1

tscsetting002
    [Documentation]    *change backup dir by TestiDCE set tsc setting and expect can work*
    copyfile    /users/mac/TestIDCE/samples/process/normal/TestDaemon_1    ${TARGET_FOLDER}/TestDaemon_1
    create directory    ${TARGET_FOLDER}/backup
    TSCSetting    ${TEST_NAME}    -BackupDir=${TARGET_FOLDER}/backup
    debug log should contain    BACKUPMODE:Dir=\\[${TARGET_FOLDER}/backup\\]
    Directory Should Not Be Empty    ${TARGET_FOLDER}/backup
    File Should Not Exist    ${TARGET_FOLDER}/TestDaemon_1
    [Teardown]    Clean 002 Test Environment    ${TARGET_FOLDER}/backup

tscsetting003
    [Documentation]    *set report dir by TestiDCE set tsc setting and expect can work*
    copyfile    /users/mac/TestIDCE/samples/process/normal/TestDaemon_1    ${TARGET_FOLDER}/TestDaemon_1
    create directory    ${TARGET_FOLDER}/report
    TSCSetting    ${TEST_NAME}    -ReportDir=${TARGET_FOLDER}/report
    debug log should contain    file_del.*ret=1    ${1}
    Directory Should Not Be Empty    ${TARGET_FOLDER}/report
    File Should Not Exist    ${TARGET_FOLDER}/TestDaemon_1

tscsetting004
    [Documentation]    *set pattern dir by TestiDCE set tsc setting and expect can work*
    copy file    /users/mac/TestIDCE/samples/process/normal/TestDaemon_1    ${TARGET_FOLDER}/TestDaemon_1
    create directory    ${TARGET_FOLDER}/PatternDir
    copy file    ${TESTENV_DIR}/TSCSetting.ptn    ${TARGET_FOLDER}/PatternDir
    TSCSetting    ${TEST_NAME}    -ptnpath=${TARGET_FOLDER}/PatternDir
    #copy file    ${TESTENV_DIR}/TSCSetting.ptn    ${TESTENV_DIR}/tsc.ptn
    debug log should contain    file_del.*ret=1    ${1}
    report log should contain    ${TARGET_FOLDER}/PatternDir/TSCSetting.ptn
    File Should Not Exist    ${TARGET_FOLDER}/TestDaemon_1

tscsetting005
    [Documentation]    *set maxbackupfilenumber=1 by TestiDCE set tsc setting and expect can work*
    copy file    ${SAMPLE_DIR}/file/normal.txt    ${TARGET_FOLDER}/1.txt
    copy file    ${SAMPLE_DIR}/file/normal.txt    ${TARGET_FOLDER}/2.txt
    copy file    ${SAMPLE_DIR}/file/normal.txt    ${TARGET_FOLDER}/3.txt
    TSCSetting    ${TEST_NAME}    -BackupFileNumber=${1}
    debug log should contain    file_del.*ret=1    ${3}
    #debug log should contain    BackupFile.*${TARGET_FOLDER}    ${1}
    directory should be empty    ${TARGET_FOLDER}
    restore_TSCSetting    ${TEST_NAME}
    file should exist    ${TARGET_FOLDER}/1.txt
    file should not exist    ${TARGET_FOLDER}/2.txt
    file should not exist    ${TARGET_FOLDER}/3.txt
    file should be equal    ${TARGET_FOLDER}/1.txt    ${SAMPLE_DIR}/file/normal.txt

tscsetting006
    [Documentation]    *set maxbackupfileitemsize=1 by TestiDCE set tsc setting and expect can work*
    copy file    ${SAMPLE_DIR}/file/normal.txt    ${TARGET_FOLDER}/normal.txt
    create specified size file    ${TARGET_FOLDER}/second.txt    ${2}
    TSCSetting    ${TEST_NAME}    -BackupFileItemSize=${1}
    directory should be empty    ${TARGET_FOLDER}
    directory should not be empty    /Users/mac/TestIDCE/testenv/backup
    restore_TSCSetting    ${TEST_NAME}
    file should exist    ${TARGET_FOLDER}/normal.txt
    file should not exist    ${TARGET_FOLDER}/second.txt
    file should be equal    ${TARGET_FOLDER}/normal.txt    ${SAMPLE_DIR}/file/normal.txt

tscsetting007
    [Documentation]    *set maxdebuglogfilenumber by TestiDCE set tsc setting and expect can work*
    copy file    ${SAMPLE_DIR}/file/normal.txt    ${TARGET_FOLDER}/normal.txt
    TSCSetting    ${TEST_NAME}    -DebuglogFileNumber=3 -superlab -loop=5
    ${count}=    Count Files In Directory    /Users/mac/TestIDCE/testenv/debug    debug_*.log
    Should Be Equal    ${${count}+${1}}    ${5}
    Command log should contain    Execute Time:    ${5}
    ${count1}=    Count Files In Directory    /Users/mac/TestIDCE/testenv/debug    *_0_*.log
    ${count2}=    Count Files In Directory    /Users/mac/TestIDCE/testenv/debug    *_1_*.log
    Should Be Equal    ${count1}    ${0}
    Should Be Equal    ${count2}    ${1}

tscsetting008
    [Documentation]    *For Coverage Test, to hit ExistPatternMapping*
    copyfile    /users/mac/TestIDCE/samples/process/normal/TestDaemon_1    ${TARGET_FOLDER}/TestDaemon_1
    TSCSetting    ${TEST_NAME}    -initDCEEX

*** Keywords ***
Clean Test Environment
    Empty Directory    ${TARGET_FOLDER}

Prepare Suite Test Environment
    Create Directory    ${TARGET_FOLDER}
    #Copy File    /Users/mac/TestIDCE/testcases/DCEIniAndLib/TSCSetting/TSCSetting.ptn    /Users/mac/TestIDCE/testenv/TSCSetting.ptn
    Build Pattern    /Users/mac/TestIDCE/testcases/DCEIniAndLib/TSCSetting/TSCSetting.in

Clean Suite Test Environment
    Clean Test Environment
    Remove Directory    ${TARGET_FOLDER}
    remove file    /users/mac/TestIDCE/testenv/tsc.ptn

Clean 002 Test Environment
    [Arguments]    ${arg1}
    Force Del Folders    ${arg1}

你可能感兴趣的:(趋势科技实习录—编写case)