Python测试用例生成脚本(合并相应单元格以及写入单行数据)代码实例

来源:互联网 发布:网络集线器hub 编辑:程序博客网 时间:2024/06/03 21:35
#coding=utf8'''把buffer中的信息,写入到excel中。并按照要求,构造表格样式'''#导入readCSV模块,用来获取buffer数据from readCSV import readCSV#导入写excel的操作库import xlwtclass GenTestCase(object):    def __init__(self,configName):        try:                        #创建一个readCSV对象            self.dataInfor=readCSV(configName)            #创建工作薄            self.wkbook=xlwt.Workbook()            #创建表:“requirement”            self.dataSheet=self.wkbook.add_sheet("requirement")            #把数据按 按照相应格式写入excel表中            self.writeDataToExcel()            #保存文件            self.savaExcel()        except Exception,e:            print "GenTestCase init error:",e          def writeDataToExcel(self):        try:            #埋点测试用例包含的相关属性,即表头            firstLine=[u"埋点事件",u"页面",u"serviceId",u"属性名", u"属性值",u"属性信息",u"埋点规则",u"版本",u"IOS开发",u"安卓开发",u"创建时间",u"测试人员",u"测试状态"]            #在末尾添加长度和firstLine长度相同的list表            #该list作用是为了能比较到最后一个事件的数据            endLine=[]             #在表的起始行写入表头数据            try:                for index in range(len(firstLine)):                    self.dataSheet.write(0,index,firstLine[index])                    endLine.append("")            except Exception,e:                print "Creat Head Error:",e                            #把csv中读取的数据赋给变量dataBody              dataBody=self.dataInfor.buffer            dataBody.append(endLine)               #设置个函数,用来记录要合并的起始行            currentrow=1            #对数据进行循环取值,由于第一行的数据不是需要的数据            #所以从第二个元素开始            try:                for rowNum in  range(1,len(dataBody)):                    #对于每个子list中的值,依次写入相关单元格                    for index in range(len(dataBody[rowNum])):                        #判断行是否大于1,为以下比较创建条件                        if rowNum>1:                            #把数据的当前行的元素与上一行元素作比较                            #如果不相等执行if语句                            try:                                if dataBody[rowNum-1][0]!=dataBody[rowNum][0] and dataBody[-1][0] !=" " :                                    #print currentrow,rowNum                                    #由于存在特殊情况,当前行号要为1                                    #针对特定的数据规则从和并前三行和后七行                                    if currentrow==1:                                        for cols in range(3):                                            #获取当前在合并单元格要保存的值                                            cellValue=dataBody[currentrow][cols]                                            #对单元格的值进行解码                                            cellValue=cellValue.decode("gbk")                                            #对单元格字符串进行加u                                            #用来解决UnicodeDecodeError                                            data=u"%s"  %(cellValue)                                            #合并单元格并写入数据                                            self.dataSheet.write_merge(currentrow,rowNum-1,cols,cols,data)                                                                                    for cols in range(6,13):                                            cellValue=dataBody[currentrow][cols]                                            cellValue=cellValue.decode("gbk")                                            data=u"%s"  %(cellValue)                                            self.dataSheet.write_merge(currentrow,rowNum-1,cols,cols,data)                                    else:                                          if dataBody[rowNum][0]!=dataBody[currentrow][0]:                                            for cols in range(3):                                                cellValue=dataBody[currentrow][cols]                                                cellValue=cellValue.decode("gbk")                                                data=u"%s"  %(cellValue)                                                self.dataSheet.write_merge(currentrow-1,rowNum-1,cols,cols,data)                                            for cols in range(6,13):                                                cellValue=dataBody[currentrow][cols]                                                cellValue=cellValue.decode("gbk")                                                data=u"%s"  %(cellValue)                                                self.dataSheet.write_merge(currentrow-1,rowNum-1,cols,cols,data)                                         else:                                            #当数据为一条时                                            for cols in range(3):                                                              cellValue=dataBody[rowNum-1][cols]                                                cellValue=cellValue.decode("gbk")                                                data=u"%s"  %(cellValue)                                                self.dataSheet.write(rowNum-1,cols,data)                                              for cols in range(6,13):                                                cellValue=dataBody[rowNum-1][cols]                                                cellValue=cellValue.decode("gbk")                                                data=u"%s"  %(cellValue)                                                self.dataSheet.write(rowNum-1,cols,data)                                                                           currentrow=rowNum+1                                                         break                            except Exception,e:                                print "Merage cell Error:",e                                        for cols in range(3,6):                                      cellValue=dataBody[rowNum][cols]                        cellValue=cellValue.decode("gbk")                        data=u"%s"  %(cellValue)                        self.dataSheet.write(rowNum,cols,data)            except Exception,e:                print "Write Data Error:",e        except Exception,e:            print "Write Data TO Excel Error:",e        def savaExcel(self):        try:            savePath=self.dataInfor.fmObj.RequmentPath()            self.wkbook.save(savePath)            print savePath,"save success..."        except Exception,e:            print "Save Excel Error:",e                                                      def test():    path="E:\PythonDemo\AutonXQL_V1.0\config.xml"    GenTestCase(path)    if __name__=="__main__":    test()            
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信交错话费了怎么办 微信缴费交错了怎么办 微信支付被投诉怎么办 微信q币充值错误怎么办 微信充值流量充错了怎么办 微信延迟到账怎么办 移动流量充错了怎么办 qq充话费等待发货怎么办 qq充值话费没到账怎么办 电信话费冲错了怎么办 微信手机充错话费充空号怎么办 京东地址写错了怎么办 京东售后不退款怎么办 冲了话费不到账怎么办 币安维护充值怎么办 微信话费未到账怎么办 微信话费交错了怎么办 北京移动查话费余额怎么办 淘宝卖家客服无法联系怎么办? 微信支付月限额怎么办 微信超额20万怎么办 微信支付超额了怎么办 微信零钱超额了怎么办 微信的充值冲错了怎么办 有流量还扣话费怎么办 自动取款机充值到电子账户怎么办 淘宝qb充错了怎么办 q币冲错了人家不给怎么办 qq充值话费错号怎么办 qq充错号码了怎么办 qq交话费不到账怎么办 充错手机号码而且是空号怎么办 微信钱包充错话费怎么办 QQ充值话费充到空号了怎么办 给别人充错话费怎么办 用qq交错话费对方是空号怎么办 号码变成空号了怎么办 qq冲流量冲错了怎么办 流量冲错了套餐怎么办 微信流量充错号码怎么办 微信支付不进账怎么办