话单采集测试

发表于:2007-10-17 13:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

        话单文件采集测试
1.基本测试:

        基础流:设置本地时间,如:20071015 16:00:00 启动话单文件生成程序

2.规则测试:

        备选流1:当日话单序号到达程序设定的最大值时,如:9999。话单文件序号将重置清零(20071015_0000)重新计数,测试是否可以正常采集
        备选流2:跨天采集,当日话单文件到次日话单文件,如:20071015-20071016,修改测试机本地时间23:59:00
             16日零时,话单文件序号将重置清零(20071016_0000)重新计数,测试是否可以正常采集
        备选流3:当日(20071015)话单到达文件设定的最大值,还未到次日(20071016),如:9999。
            测试数据先将文件序号清零(20071015_0000),查看是否可正常采集
            其次,当到达次日时再次清零(20071016_0000),查看是否可以正常采集
            
        测试1=基础流+备选流1
        测试2=基础流+备选流2
        测试3=基础流+备选流3

3.容错性测试:

        备选流1:跨月采集,设定话单文件为2007_10_31 23:58:00,查看是否可正常采集
        备选流2:跨年采集,设定话单文件为2007_12_31 23:58:00,查看是否可正常采集
        备选流3:当日(2007_12_31 23:58:00)话单到达文件设定的最大值,还未到次日(2008_01_01 00:00:00),如:9999。
        测试数据先将文件序号清零(20071231_0000),查看是否可正常采集
        其次,当到达次日时再次清零(20080101_0000),查看是否可以正常采集

        测试1=基础流+备选流1
        测试2=基础流+备选流2
        测试3=基础流+备选流3

[PS:很久没写过事件流的用例了,上面的可能不太完善,欢迎各位达人指正]

        下面与各位分享一下,这个采集程序的部分Py脚本(有些地方写的很烂)

config/config.ini

 [config]
initialization_path=D:\\CodeSources\\Dev_Py\\
data_prefixion=sdf
data_infix=rrse
data_postfix=.txt
initialization_number=9990
run_count=100

# -*- coding: cp936 -*-
#
===============================================================================
#
程序需求:话单时间片替换程序,可自动生成话单文件
#
1.可自动识别任意话单的时间位置
#
2.可自动识别各种话单文件的长度,生成已当前本地时间为时间片的话单数据(替换原始话单中的时间列)
#
3.当日话单达到最大值9999时,话单文件序号自动清零重新计数,如:0000,0001
#
4.当话单文件跨天时,文件序号自动清零重新计数,如:0000,0001
#
5.提供参数配置功能(config.ini/run_log.txt/原始话单文件)
#
6.提供日志输出功能:可查看最后生成的话单文件关键参数与循环计数
#
===============================================================================
import os,time,sys

class DataBase():
    
    
def __init__(self):
        
        config_path 
= open(".//config//config.ini",'r')
        config_list 
= config_path.readlines()
        
#通过配置文件获得话单数据的初始化文件路径
        self.initialization_path = config_list[1][config_list[1].strip().find("=")+1:-1]
        
#得到话单文件名前缀
        self.data_prefixion = config_list[2][config_list[2].strip().find("=")+1:-1]
        
#得到话单文件名日期
        nowtime = time.localtime()
        
#初始化参数
        data1 = ""
        
for i in range(3):
            
#如果日期为单数需要补零
            data1 += "%02d" % nowtime[i]
        self.data_data
=data1
        
#得到话单文件中缀
        self.data_infix = config_list[3][config_list[3].strip().find("=")+1:-1]
        
#得到话单文件后缀
        self.data_postfix = config_list[4][config_list[4].strip().find("=")+1:-1]
        
#得到话单文件当前数据号
        self.data_number = "%04d" % int(config_list[5][config_list[5].strip().find("=")+1:])
        self.data_path 
= self.initialization_path+"config\"+self.data_prefixion+self.data_data+self.data_infix+self.data_number+self.data_postfix
        
#得到程序需要运行的次数
        self.data_count = config_list[6][config_list[6].strip().find("=")+1:]
                
    
def get_localtime(self):

        
#获取本地时间,For Example:2008/10/02 00:44:11
        nowtime = time.localtime()
        
#print nowtime
        data1,time1 = "",""
        
for i in range(3):
            
#如果获得时间是单数,则需要补位0
            data1 += ("%02d" % nowtime[i])+'/'
        
#获得时间片的日期测试print data1[0:-1]
        for i in range(3,6):
            
#如果获得日期是单数,则需要补位0
            time1 += ("%02d" % nowtime[i])+':'
        
#获得时间片的时间测试print time1[0:-1]
        #时间片的数据组合
        time_area = data1[0:-1]+" "+time1[0:-1]
        
return time_area
        
    
def data_control(self):
        
        
#得到需要重写话单文件的路径及命名self.data_count
        count = 0
        data_time 
= self.data_data
        data_number 
= self.data_number
        dd 
= 1
        
for i in range(int(self.data_count)):
            i 
+= 1
            last_time 
= data_time
            last_data_number 
= data_number
            temp 
= dd
            last_count 
= i
            
if dd != 1:
                last_count 
=  last_count - end_count
            
#i += 1
            #增加话单数据文件序号隔天重新计数
            nowtime = time.localtime()
            data_time 
= ""
            
for y in range(3):
            
#如果日期为单数需要补零
                data_time += "%02d" % nowtime[y]
            
if data_time == last_time:
                last_data_number 
= data_number
            
else:
                
#重置循环次数
                end_count = i
                last_count 
= 0
                
#制作标识为
                dd = 2
                
#如果不相等,则重置时间序号
                last_data_number = data_number = 0
            
#处理生成的文件路径数字超过4位
            rebulid_number = "%04d" % int(str((int(last_data_number)+last_count))[-4:])
            rebulid_path 
= self.initialization_path+self.data_prefixion+data_time+self.data_infix+rebulid_number+self.data_postfix
            
#从初始化路径中得到数据
            tel_node = open(self.data_path,"r")
            tel_node_new 
= open(rebulid_path,'w')
            tel_list 
= tel_node.readlines()
            
for i in range(len(tel_list)):
                
#数据的第一行
                new_list = tel_list[i].split(',')
                
for j in range(len(tel_list[i].split(','))):
                    
#赛选存在日期的序列,i等于时间片序列的纵行位置
                    if '/' in tel_list[i].split(',')[j]:
                        
#从原始列表中删除原始日期
                        new_list.remove(tel_list[i].split(',')[j])
                        
#替换重新组合的日期时间
                        time_area = self.get_localtime()
                        new_list.insert(j,time_area)
                
#得到新的数据列表print new_list
                #合成数据从列表中读出数据添加分割符
                new_string = ""
                
for i in new_list:
                    new_string 
+= str(i)+','
                
#print new_string[0:-1]
                tel_node_new.writelines(new_string[0:-1])
            count 
+= 1
            
print "Execute!count=%s,current_time=%s,current_number=%s" % (count,data_time,rebulid_number)
            log_path 
= open(".//config//run_log.txt",'w')
            log_path.writelines(
"Execute!count=%s,current_time=%s,current_number=%s" % (count,data_time,rebulid_number))
            time.sleep(
10)
            
        
if __name__ == "__main__":
    
    control 
= DataBase()
    
print "测试前请先核对您的文件路径是否正确!"
    
print control.data_path
    choose 
= raw_input("确认请输入OK:")
    
print "程序开始执行"
    control.data_control()
        

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • sweetylym
    2009-8-14 16:40:03

    有没有计费测试的用例啊

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号