Tony.Sing'Blog [ Testing Working ]

测义有道,取之道;策意有划,谋之划;掣易有形,形之美;

sing TonyID:nilxin
206155次访问,排名309好友10人,关注者28
爱生活,爱四方,四方科技!
nilxin的文章
原创 199 篇
翻译 0 篇
转载 36 篇
评论 137 篇
Tony.Sing的公告
如果!!!!!!!! 工作就是你的全部,你错了。请正视自己,尽情飞舞吧。其实创意就在你我身边,局限与生活、局限于工作,我们原本可以更佳激情。因为工作是愉快的,从一个点看一个圆圈看不到尽散尽美,从不同点去审视却可能收获的更多。我相信生活是简单的、朴实的,只是我们不清楚什么才是快乐,所以它复杂了,但现在我们需要它更简单。于是,懒成了艺术、成了价值,给我们更多时间去耕耘这块艺术的田地,于是,我们找到了快乐,那是,属于自己的快乐。
MSN: nilxin@hotmail.com
Gtalk: nilxin@gmail.com

北京金山数字娱乐公司 (Adin)
研发中心 职务:测试开发



Call Me:
大型网络游戏性能测试群
17827576 欢迎加入
最近评论
kala197:我也是软件测试专业的 可是 我我不知道看什么书好些 你给我推荐下 谢谢
!!
yanwu168:从你的文章中我可以看出来你在广州的一家周专门做办公自动化软件公司工作过!
yanwu168:我想请教一个具体的问题
就在进行 如下步骤的时候 ,能不能详细说明一下每一个细节呢 ? 比如 要不要新建用户,要不要给用户权限,以及脚本文件的存放位置等等 迷糊啊


在新的db2导入数据

创建数据库: db2 create db 库名

导入表结构操作:db2 -tvf 文件名.sql
SuperLinux:"就像有1000W商务网站 但只有不到100个是盈利 你觉得代码有多少差别呢? 思考代码背后更多应该思考的是运营模式 我不关心用什么技术实现。我只关心什么技术能创造价值 创意正是我们的价值 它不是一个点 而是一个过程"
这个我很同意,技术在很多成功商业案例里并不是决定性的因素。 我所占的角度是从自身的出发点考虑的,当一个人缺乏资金,缺乏人力,必须要自己动手实现自己特别想实现的创意……
nilxin:SuperLinux 如果从市场的角度考虑 创意和代码是是两块东西 创意不仅仅指一个想法 它一定是一个有规划的过程 它是一个整体 而代码只是其中的一部分 生产力根本是谋取利益 就像有1000W商务网站 但只有不到100个是盈利 你觉得代码有多少差别呢? 思考代码背后更多应该思考的是运营模式 我不关心用什么技术实现
我只关心什么技术能创造价值 创意正是我们的价值 它不是一个点 而是……
文章分类
收藏
相册
JavaEE 5.0 Stand
Web标准
个人自拍
公司合照
年韵(2007)
收藏的MM
随意涂鸦
同事朋友
网络游戏性能测试
游戏试玩
正交分解专题
关注Blog
David's BLOG
emu的专栏's Blog
Google's All Message
Jackei测试人生's Blog
KerryZhu's Blog
Limodou's Blog
makethyme's Blog
rudt's BLOG
Sean's Blog
tins's BLOG
toto's Blog
van's BLOG
wilson's BLOG
XML生成DTD
Zee活得尚好's Blog
zeldman's BLOG
乐天's Blog
关河's Blog
关河's Blog
北漂的涂鸦's BLOG
南陵's Blog_Python_Code篇
川川's BLOG
技术荟萃's BLOG
李鑫's Blog
桢桢's BLOG
榕树人's BLOG
测试之窗's Blog
猛禽的编程艺术's Blog
秋阳的软件测试's BLOG(RSS)
郑昀(RSS)
陈巍'Blog(RSS)
龙骑将'S Blog(性能监控)(RSS)
讨论群Group
Nilsoft's Chat Bar
School-Design's Group
Site's Chat Bar
友情连接
51Testing
51Testing 测试论坛
CSDN
CSDN程序员订阅
Google
Google's Group
Google's 黒板报
mercury官方测试试验站
中国软件测试基地
代码大全第2版(OnLine)
新浪
猫扑
非凡
资源分享
CSS Play
XHTML 1.0 Document
如何说动你的老板
浮动模型的问题
网页调色板
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 一段流量分析工具代码检视收藏

新一篇: 《一个测试人员的反思》2年后的续篇 | 旧一篇: Unix-Shell基础总汇

#!/usr/bin/env python
#
-*- coding: cp936 -*-
import threading,os,time

class ReadConfig():
    
    
def Base_Config(self):
        
        
#配置话单路径
        TelPath = "d:\bak"
        
#print TelPath
        return TelPath
        
    
class GetPath(ReadConfig):
    
    
def Get_Path(self):
        
        
#获取路径下分析文件,建立字典
        dict = {}
        dir_temp 
= []
        file_temp 
= []
        basepath 
= self.Base_Config()
        
#print basepath
        for root, dirs, files in os.walk(self.Base_Config()):
            
#获取文件夹节点,获取文件夹对应文件
            for dir in dirs:
                dir_temp.append(dir)
        dir_temp.sort()
        
for i in dir_temp:
            
#print self.Base_Config()+"\"+str(i)
            for root, dirs, files in os.walk(self.Base_Config()+"\"+str(i)):
                
#获取对应文件夹下的数据
                file_temp.append(files)
        
for i in range(len(dir_temp)):
            
#建立数据字典
            dict[dir_temp[i]] = file_temp[i]
        
return basepath,dict

class ThreadMain(threading.Thread,GetPath):
    
    
def __init__(self):
        
        
#设定一个分析时间片,单位为分钟
        self.AnalyseTimeArea = 5
        basepath,dict 
= self.Get_Path()
        
#print basepath,dict
        self.dict = dict
        self.basepath 
= basepath
    
    
def Thread_Contorl(self):
        
        
#读取字典的索引,索引为文件夹节点self.dict.keys()[i]
        self.Add_Tel_Path_temp2 = []
        
#print self.dict.keys()
        for i in range(len(self.dict.keys())):
            self.Add_Tel_Path_temp1 
= []
            
#print self.dict.keys()[i],self.dict[self.dict.keys()[i]]
            for y in range(len(self.dict[self.dict.keys()[i]])):
                
#print self.dict.keys()[i],self.dict[self.dict.keys()[i]]
                #print len(self.dict[self.dict.keys()[i]])
               self.Add_Tel_Path =  self.basepath+"\"+self.dict.keys()[i]+"\"+self.dict[self.dict.keys()[i]][y]
               self.Add_Tel_Path_temp1.append(self.Add_Tel_Path)
            
#print Add_Tel_Path_temp1
            self.Add_Tel_Path_temp2.append(self.Add_Tel_Path_temp1)
        
#Add_Tel_Path_temp2得到已文件夹节点分类数组,格式如下[[2008-3-8],[2008-3-10],[2008-3-9]]
        return self.Add_Tel_Path_temp2
    
    
#================================================================================
    # 已文件夹为单位进行时间分割计算每日的话单总流量
    # Method Name:AnalyseMethod_Countdayflow
    # Author:xinkai Add:2008-3-10
    #================================================================================
    def AnalyseMethod_Countdayflow(self):
        
        self.CountFlow 
= 0
        
#由线程类获得分析数组
        self.AnalyseList = self.Thread_Contorl()
        
#print AnalyseList
        for i in range(len(self.AnalyseList)):
            self.CountFlow 
= 0
            
#print self.dict.keys()[i],AnalyseList[i]
            #===============================================================================
            #            此处需要加判断日期以及有效话单
            #===============================================================================
            for y in range(len(self.AnalyseList[i])):
                
#print AnalyseList[i][y]
                self.AnalyseData = open(self.AnalyseList[i][y],'r')
                self.CountFlow 
+= len(self.AnalyseData.readlines())
                
#print self.dict.keys()[i]+str(len(AnalyseData.readlines()))+" "
            print self.dict.keys()[i]+"当日数据总流量为:"+str(self.CountFlow)
            
    
#================================================================================
    # 已文件夹为单位进行时间分割按照划定的时间片对每日话单分时流量进行统计
    # Method Name:AnalyseMethod_CountTimeFlow
    # Author:xinkai Add:2008-3-10
    #================================================================================
    def AnalyseMethod_CountTimeFlow(self):
        
        Analyse_CountTimeFlow 
= open('Analyse_CountTimeFlow.log','w')
        
#由线程类获得分析数组
        self.AnalyseList = self.Thread_Contorl()
        
for i in range(len(self.AnalyseList)):
            temp 
= []
            self.AnalyseStack 
= []
            self.AnalyseStackSend 
= []
            
for y in range(len(self.AnalyseList[i])):
                
#已时间文件夹为分割点,分类读取话单进行分析
                #用来计算每个文件中每个话单记录的时间堆栈
                self.AnalyseData = open(self.AnalyseList[i][y],'r')
                self.AnalyseStackSend.append(self.AnalyseData.readlines())
                
#用来计算基础时间轴的堆栈AnalyseStack
                self.AnalyseData = open(self.AnalyseList[i][y],'r')
                self.AnalyseStack.append(self.AnalyseData.readlines()[0])
            
#已文件夹时间点分割,获取基础时间轴
            self.BaseTimeCenter = self.AnalyseStack[0].split(',')[21]
            
#转化话单发送时间为整数
            self.ChangeBaseTime = self.ChageTime(self.BaseTimeCenter)
            
for h in range(len(self.AnalyseList[i])):
                
for z in self.AnalyseStackSend[h]:
                    self.TelTime 
= self.ChageTime(z.split(',')[21])
                    
#print str(self.TelTime)+"//\"+str(self.ChangeBaseTime)
                    import math
                    
#获得已基础时间为轴的时间差值
                    #print int(math.fabs(self.TelTime - self.ChangeBaseTime))/60
                    temp.append((int(math.fabs(self.TelTime - self.ChangeBaseTime))/60/ self.AnalyseTimeArea)
            
print self.dict.keys()[i]
            Analyse_CountTimeFlow.writelines(
"话单时间:%s 初始时间片    时间片    分时流量 " % (self.dict.keys()[i]))
            Analyse_CountTimeFlow.close()
            
for j in range(1440/int(self.AnalyseTimeArea)):
                
if temp.count(j) <> 0:
                    Analyse_CountTimeFlow 
= open('Analyse_CountTimeFlow.log','a')
                    
print "分析时间片:%s分钟 ; 第%s时间片 ; 分时流量为%s条 ;" % (self.AnalyseTimeArea,j,temp.count(j))
                    Analyse_CountTimeFlow.writelines(
"%s    %s    %s " % (self.AnalyseTimeArea,j,temp.count(j)))
                
    
def ChageTime(self,datatime):
        
        
#初始化变量
        self.YearMD = ""
        self.TimeCS 
= ""
        
        
#引用时间参数
        self.datatime = datatime
        self.SplitDataTime1 
= self.datatime.split(' ')
        self.SplitDataTime2 
= self.SplitDataTime1[0].split('/')
        self.SplitDataTime3 
= self.SplitDataTime1[1].split(':')
        
#分割结果['2008', '03', '10'] ['11', '18', '18']
        
        
#组合分割数据转换时间为整数
        for i in self.SplitDataTime2:
            self.YearMD 
+= i
        
for h in self.SplitDataTime3:
            self.TimeCS 
+= h
        self.newTime 
= self.YearMD + self.TimeCS
        
return int(self.newTime)
        
    
def __del__(self):
        
pass
    
class ControlThread(ThreadMain):
    
    
def __init__(self):
        
        basepath,dict 
= self.Get_Path()
        self.dict 
= dict
        self.basepath 
= basepath
        
    
def Control_Thread(self):
        
        
#控制使用分析线程
        print "-----------------------------------------"
        ObjectThread 
= ThreadMain()
        
print "开始计算每日流量:"
        ObjectThread.AnalyseMethod_Countdayflow()
        
print "计算结束"
        
print "-----------------------------------------"
        
import time
        time.sleep(
0.01)
        
print "开始计算分时流量:"
        ObjectThread.AnalyseMethod_CountTimeFlow()
        
print "计算结束"
        
print "-----------------------------------------"
            
if __name__ == "__main__":
    
    ObjectControl 
= ControlThread()
    ObjectControl.Control_Thread()
 

发表于 @ 2008年04月17日 23:57:00|评论(loading...)|编辑

新一篇: 《一个测试人员的反思》2年后的续篇 | 旧一篇: Unix-Shell基础总汇

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © Tony.Sing