coding=utf-8 #导入csv包 #python版本为2.7 import csv #保存文件夹名 logic_control=["achievement","adminBase","announcement","arean","equip","exocism","gamer","gateway","god","guild","hero","item","LB","MAIL","PVE","resource","store","TASK","trial","welfare","worldboss"] #保存文件名 tps_name=["100_TPS.csv","200_TPS.csv","300_TPS.csv","400_TPS.csv"] #获取文件下的所有文件 for logic in logic_control: for tpsname in tps_name: #保存文件路径 tps_path="C:\\Users\\wan\\Desktop\\TPS_Aggregate\\" + logic +"\\" + tpsname #保存期望结果路径 avg_tps_path="C:\\Users\\wan\\Desktop\\TPS_Aggregate\\" + logic +"\\" +"AVG_"+ tpsname print tps_path print avg_tps_path tps=file(tps_path,"rb") tps_avg=file(avg_tps_path,"wb") #创建写的文件句柄 writer=csv.writer(tps_avg) #创建读的文件句柄 reader=csv.reader(tps) #创建一个数组,用来保存CSV文件的数字部分 number=[] #给期望的csv添加头部信息 writer.writerow(["Interface Name","AVG TPS","MAX TPS"]) #获取原csv文件的每一行数据 for line in reader: #获取每行数据除去第一元素外的所有元素 for nu in line[1:len(line)-1]: #把list中为空的元素去掉 if nu!='': #把数字元素转换为整形并加入number数组 number.append(float(nu)) #把数组number的最大值赋给bigd bigd=max(number) tps_sum=sum(number) #求平均值 avg_tps=tps_sum/len(number) #打印接口名称和最大TPS print line[0],avg_tps,bigd #清空数组中的元素,还原到初始化状态 number=[] #把接口名称和最大tps保存到期望结果的CSV文件中 writer.writerow([line[0],avg_tps,bigd]) #关闭CSV文件,注意关闭顺序 tps.close() tps_avg.close() ''' #获取原CSV文件,并给文件赋予读的权限 #我尝试用相对路径出错,我用的绝对路径 tps=file('C:\\Users\\wan\\Desktop\\TPS_Aggregate\\achievement\\400_TPS.csv',"rb") #创建一个保存期望结果的CSV文件,并给文件赋予写的权限 #我尝试用相对路径出错,我用的绝对路径 tps_avg=file('C:\\Users\\wan\\Desktop\\TPS_Aggregate\\achievement\\AVG_400_TPS.csv',"wb") '''
我创建该脚本的目的是用来处理jmeter中TPS的csv文件,来获取TPS文件中每个接口的最大TPS值:
但做这个要对导出的csv文件进行处理,以下是我处理步骤:
首先,导出CSV文件并命名
其次,用excel打开,我不需要时间列,我把时间列删除,选择所有接口和tps所在的域
第三,把选取的域在新的sheet中进行粘贴,选择转置,然后保存
最后就可用脚本对该文件操作了