python脚本 自动化批量读取Ecutest测试报告 压缩 匹配id 上传testlink附件

这段代码实现了一个自动化脚本,用于读取指定目录中的文件,根据用户输入的suite ID进行文件夹压缩,然后检查压缩文件名是否符合特定模式。如果匹配,文件将被复制到另一个目录。接着,它从TestLink API获取测试用例,并将指定目录中的7z文件作为附件上传到对应的测试用例。整个过程涉及文件操作、TestLink API交互及自动化测试用例管理。
摘要由CSDN通过智能技术生成

经过验证,运行后可以达到预期的结果,只需要手动输入自己的url和key,并输入正确的识别名,和suite的id就可以正常运行,匹配不同的id,批量上传到附件。

from __future__ import print_function
import testlink
import logging
import re
import html
from ApiClient import ApiClient
import sys
import collections
import testlink
import os
import os
import testlink
import xlrd
manual = 1
automation = 2
url = "########################testlink地址"
key = '##############################我的key'
tlc = testlink.TestlinkAPIClient(url, key)
import easygui as g
str1 = g.diropenbox('open file', 'C:/User/Administrator/Desktop/__pycache__')
print(str1)
path1=(str1+"\\11111")
path2=(str1+"\\22222")
os.mkdir(path1)
os.mkdir(path2)
import easygui as a
ret=a.enterbox(msg='请输入suite对应ID',title='脚本001',)
print(ret)
import os
import os
path = str1
z=[]
for filename in os.listdir(path):
     x=os.path.join(path, filename)
     y=x
     # print(y)
     z.append(y)
# print(z)
import zipfile
from os import path,walk,chdir
def zipFiles(pathsList):
    for i,r in enumerate(pathsList,0):
        if path.isfile(r):
            fDir,fName=path.split(r)
            fPre,fSuf=path.splitext(fName)
            chdir(fDir)

            zipPath=fDir+'\\'+fPre+'.zip'
            zipObj = zipfile.ZipFile(zipPath, 'w', zipfile.ZIP_DEFLATED)
            zipObj.write(fName)
            zipObj.close()
        else:
            chdir(r)
            fDir,fName=path.split(r)
            fPre,fSuf=path.splitext(fName)
            zipPath=fDir+'\\11111'+'\\'+fName+'.7z'
            zipObj = zipfile.ZipFile(zipPath, 'w', zipfile.ZIP_DEFLATED)
            for p, dirs, files in walk(r):
                for name in files:
                    zPath=path.join(p, name).replace(r+'\\','')
                    zipObj.write(zPath)
                for name in dirs:
                    zPath=path.join(p, name).replace(r+'\\','')
                    zipObj.write(zPath)
            zipObj.close()

        print('第{}个文件夹压缩完毕,储存路径{}'.format(i,zipPath))

pathsList=z
zipFiles(pathsList)

zz=[]
import shutil, os

for filename in os.listdir(path1):
    xx=os.path.join(path1, filename)
    yy=xx
    print(os.path.join(path1, filename))
    zz.append(yy)
# print(zz)


for zz in zz:
    str1="ECUTEST--";
    str2=zz
    str2.find(str1)
    # print(str2.find(str1))
    if str2.find(str1)==-1:
        print("111")
    else:
        print("222"),shutil.copy(zz, path2)

cases = tlc.getTestCasesForTestSuite(testsuiteid=ret,deep=2,details="Test case for Transmission")
for cases in cases:
   print(cases['id'], cases['external_id'])
   print(cases)

zzz=[]
import shutil, os
# path = r'E:\\TestReports\22222'
for filename in os.listdir(path2):
    xxx=os.path.join(path2, filename)
    yyy=xxx
    # print(os.path.join(path, filename))
    zzz.append(yyy)
# #
# #
cases = tlc.getTestCasesForTestSuite(testsuiteid=ret,deep=2,details="Test case for Transmission")
# for zzz in zzz:
#     print(zzz)
for zzz in zzz:
    cases = tlc.getTestCasesForTestSuite(testsuiteid=ret, deep=2, details="Test case for Transmission")
    for cases in cases:
        zzz.split("_")[0]
        zzz.split("_")[0].split("\\")[4]
        str3=cases["external_id"]
        print(cases["external_id"])
        str4=zzz
        str5=zzz.split("_")[0].split("\\")[4]
        if str3!=str5:
            print("进行中")
        else:
            print("上传中")
            now_id=cases['id']
            print(now_id)
            file_In = str4
            (filepath, tempfilename) = os.path.split(file_In)
            print(tempfilename)
            NEWATTACHMENT_7Z=os.path.join(path2, tempfilename)
            a_file=open(NEWATTACHMENT_7Z, mode='rb+')
            try:
                newAttachment = tlc.uploadTestCaseAttachment(NEWATTACHMENT_7Z,testcaseid=now_id,version=1
                                                    , description='1')
                print("uploadTestSuiteAttachment", newAttachment)
            except:
                continue
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值