测试用例完成度计算器

有时候一个项目的测试用例很多,而且分成了好几组测试,如果想每隔一段时间汇总一下测试的进度,那么需要统计一下测试完成了多少用例,有多少是PASS,有多少是FAIL,有多少是BLOCKED等等。所以写了个可视化的小工具,可以帮助统计,一键生成报表。
当然,这个源代码写得一言难尽,非常冗余,重复的代码太多。原本想通过输入参数来决定主窗口生成多少个文本框,但是没有摸索出来,后续再优化吧。。。
通过这此的练习,对可视化编程有了初步的了解,后面也会继续加深这方面的学习。

# -*- coding:utf-8 -*-
import xlrd
import sys
import os
import openpyxl
from openpyxl.styles import Font,colors
from openpyxl.styles import PatternFill
from PySide2.QtWidgets import *



class A(QWidget):

    def __init__(self):

        super().__init__()
        self.initUI()
        
    def initUI(self):

        self.button = QPushButton('Enter', self)   # 窗口里添加一个按钮
        self.label = QLabel('Welcome to use this tool!',self)
        #self.textEdit = QPlainTextEdit('',self)

        self.setGeometry(200, 200, 300, 150)
        self.button.move(100, 100)
        self.button.resize(90,30)
        self.label.move(50,30)
        #self.textEdit.move(90,50)
        #self.textEdit.resize(110,40)
        self.setWindowTitle('Welcome')
        self.show()

    def closeEvent(self, event):

        #self.close.emit()
        self.close()


class B(QWidget):

    def __init__(self):

        super().__init__()
        self.initUI()

    def initUI(self):

        self.label1 = QLabel('Test Suite Name', self) # 窗口里添加一个标签
        self.label1.move(20, 20)

        self.lable2 = QLabel('Total',self)
        self.lable2.move(420,20)

        self.lable3 = QLabel('Not Run',self)
        self.lable3.move(520,20)

        self.lable4 = QLabel('Passed',self)
        self.lable4.move(620,20)

        self.lable5 = QLabel('Failed',self)
        self.lable5.move(720,20)

        self.lable6 = QLabel('Blocked',self)
        self.lable6.move(820,20)

        self.button = QPushButton('Calculate',self)
        self.button.move(900,300)

        self.setGeometry(600, 200, 1024, 600)
        self.setWindowTitle('Test Coverage Calculator')


        self.textEdit11 = QPlainTextEdit('',self)
        self.textEdit11.setPlaceholderText("Please input test suite name")
        self.textEdit11.move(20,40)
        self.textEdit11.resize(330,30)

        self.textEdit12 = QPlainTextEdit('',self)
        self.textEdit12.move(420,40)
        self.textEdit12.resize(50,30)

        self.textEdit13 = QPlainTextEdit('',self)
        self.textEdit13.move(520,40)
        self.textEdit13.resize(50,30)

        self.textEdit14 = QPlainTextEdit('',self)
        self.textEdit14.move(620,40)
        self.textEdit14.resize(50,30)

        self.textEdit15 = QPlainTextEdit('',self)
        self.textEdit15.move(720,40)
        self.textEdit15.resize(50,30)

        self.textEdit16 = QPlainTextEdit('',self)
        self.textEdit16.move(820,40)
        self.textEdit16.resize(50,30)

        self.textEdit21 = QPlainTextEdit('',self)
        self.textEdit21.setPlaceholderText("Please input test suite name")
        self.textEdit21.move(20,90)
        self.textEdit21.resize(330,30)

        self.textEdit22 = QPlainTextEdit('',self)
        self.textEdit22.move(420,90)
        self.textEdit22.resize(50,30)

        self.textEdit23 = QPlainTextEdit('',self)
        self.textEdit23.move(520,90)
        self.textEdit23.resize(50,30)

        self.textEdit24 = QPlainTextEdit('',self)
        self.textEdit24.move(620,90)
        self.textEdit24.resize(50,30)

        self.textEdit25 = QPlainTextEdit('',self)
        self.textEdit25.move(720,90)
        self.textEdit25.resize(50,30)

        self.textEdit26 = QPlainTextEdit('',self)
        self.textEdit26.move(820,90)
        self.textEdit26.resize(50,30)

        self.textEdit31 = QPlainTextEdit('',self)
        self.textEdit31.setPlaceholderText("Please input test suite name")
        self.textEdit31.move(20,140)
        self.textEdit31.resize(330,30)

        self.textEdit32 = QPlainTextEdit('',self)
        self.textEdit32.move(420,140)
        self.textEdit32.resize(50,30)

        self.textEdit33 = QPlainTextEdit('',self)
        self.textEdit33.move(520,140)
        self.textEdit33.resize(50,30)

        self.textEdit34 = QPlainTextEdit('',self)
        self.textEdit34.move(620,140)
        self.textEdit34.resize(50,30)

        self.textEdit35 = QPlainTextEdit('',self)
        self.textEdit35.move(720,140)
        self.textEdit35.resize(50,30)

        self.textEdit36 = QPlainTextEdit('',self)
        self.textEdit36.move(820,140)
        self.textEdit36.resize(50,30)

        self.textEdit41 = QPlainTextEdit('',self)
        self.textEdit41.setPlaceholderText("Please input test suite name")
        self.textEdit41.move(20,190)
        self.textEdit41.resize(330,30)

        self.textEdit42 = QPlainTextEdit('',self)
        self.textEdit42.move(420,190)
        self.textEdit42.resize(50,30)

        self.textEdit43 = QPlainTextEdit('',self)
        self.textEdit43.move(520,190)
        self.textEdit43.resize(50,30)

        self.textEdit44 = QPlainTextEdit('',self)
        self.textEdit44.move(620,190)
        self.textEdit44.resize(50,30)

        self.textEdit45 = QPlainTextEdit('',self)
        self.textEdit45.move(720,190)
        self.textEdit45.resize(50,30)

        self.textEdit46 = QPlainTextEdit('',self)
        self.textEdit46.move(820,190)
        self.textEdit46.resize(50,30)

        self.textEdit51 = QPlainTextEdit('',self)
        self.textEdit51.setPlaceholderText("Please input test suite name")
        self.textEdit51.move(20,240)
        self.textEdit51.resize(330,30)

        self.textEdit52 = QPlainTextEdit('',self)
        self.textEdit52.move(420,240)
        self.textEdit52.resize(50,30)

        self.textEdit53 = QPlainTextEdit('',self)
        self.textEdit53.move(520,240)
        self.textEdit53.resize(50,30)

        self.textEdit54 = QPlainTextEdit('',self)
        self.textEdit54.move(620,240)
        self.textEdit54.resize(50,30)

        self.textEdit55 = QPlainTextEdit('',self)
        self.textEdit55.move(720,240)
        self.textEdit55.resize(50,30)

        self.textEdit56 = QPlainTextEdit('',self)
        self.textEdit56.move(820,240)
        self.textEdit56.resize(50,30)

        self.textEdit61 = QPlainTextEdit('',self)
        self.textEdit61.setPlaceholderText("Please input test suite name")
        self.textEdit61.move(20,290)
        self.textEdit61.resize(330,30)

        self.textEdit62 = QPlainTextEdit('',self)
        self.textEdit62.move(420,290)
        self.textEdit62.resize(50,30)

        self.textEdit63 = QPlainTextEdit('',self)
        self.textEdit63.move(520,290)
        self.textEdit63.resize(50,30)

        self.textEdit64 = QPlainTextEdit('',self)
        self.textEdit64.move(620,290)
        self.textEdit64.resize(50,30)

        self.textEdit65 = QPlainTextEdit('',self)
        self.textEdit65.move(720,290)
        self.textEdit65.resize(50,30)

        self.textEdit66 = QPlainTextEdit('',self)
        self.textEdit66.move(820,290)
        self.textEdit66.resize(50,30)

        self.textEdit71 = QPlainTextEdit('',self)
        self.textEdit71.setPlaceholderText("Please input test suite name")
        self.textEdit71.move(20,340)
        self.textEdit71.resize(330,30)

        self.textEdit72 = QPlainTextEdit('',self)
        self.textEdit72.move(420,340)
        self.textEdit72.resize(50,30)

        self.textEdit73 = QPlainTextEdit('',self)
        self.textEdit73.move(520,340)
        self.textEdit73.resize(50,30)

        self.textEdit74 = QPlainTextEdit('',self)
        self.textEdit74.move(620,340)
        self.textEdit74.resize(50,30)

        self.textEdit75 = QPlainTextEdit('',self)
        self.textEdit75.move(720,340)
        self.textEdit75.resize(50,30)

        self.textEdit76 = QPlainTextEdit('',self)
        self.textEdit76.move(820,340)
        self.textEdit76.resize(50,30)

        self.textEdit81 = QPlainTextEdit('',self)
        self.textEdit81.setPlaceholderText("Please input test suite name")
        self.textEdit81.move(20,390)
        self.textEdit81.resize(330,30)

        self.textEdit82 = QPlainTextEdit('',self)
        self.textEdit82.move(420,390)
        self.textEdit82.resize(50,30)

        self.textEdit83 = QPlainTextEdit('',self)
        self.textEdit83.move(520,390)
        self.textEdit83.resize(50,30)

        self.textEdit84 = QPlainTextEdit('',self)
        self.textEdit84.move(620,390)
        self.textEdit84.resize(50,30)

        self.textEdit85 = QPlainTextEdit('',self)
        self.textEdit85.move(720,390)
        self.textEdit85.resize(50,30)

        self.textEdit86 = QPlainTextEdit('',self)
        self.textEdit86.move(820,390)
        self.textEdit86.resize(50,30)

        self.textEdit91 = QPlainTextEdit('',self)
        self.textEdit91.setPlaceholderText("Please input test suite name")
        self.textEdit91.move(20,440)
        self.textEdit91.resize(330,30)

        self.textEdit92 = QPlainTextEdit('',self)
        self.textEdit92.move(420,440)
        self.textEdit92.resize(50,30)

        self.textEdit93 = QPlainTextEdit('',self)
        self.textEdit93.move(520,440)
        self.textEdit93.resize(50,30)

        self.textEdit94 = QPlainTextEdit('',self)
        self.textEdit94.move(620,440)
        self.textEdit94.resize(50,30)

        self.textEdit95 = QPlainTextEdit('',self)
        self.textEdit95.move(720,440)
        self.textEdit95.resize(50,30)

        self.textEdit96 = QPlainTextEdit('',self)
        self.textEdit96.move(820,440)
        self.textEdit96.resize(50,30)

        self.textEdit101 = QPlainTextEdit('',self)
        self.textEdit101.setPlaceholderText("Please input test suite name")
        self.textEdit101.move(20,490)
        self.textEdit101.resize(330,30)

        self.textEdit102 = QPlainTextEdit('',self)
        self.textEdit102.move(420,490)
        self.textEdit102.resize(50,30)

        self.textEdit103 = QPlainTextEdit('',self)
        self.textEdit103.move(520,490)
        self.textEdit103.resize(50,30)

        self.textEdit104 = QPlainTextEdit('',self)
        self.textEdit104.move(620,490)
        self.textEdit104.resize(50,30)

        self.textEdit105 = QPlainTextEdit('',self)
        self.textEdit105.move(720,490)
        self.textEdit105.resize(50,30)

        self.textEdit106 = QPlainTextEdit('',self)
        self.textEdit106.move(820,490)
        self.textEdit106.resize(50,30)



    def cal(self):
        # qty = 5

        info1 = []
        info2 = []
        info3 = []
        info4 = []
        info5 = []
        info6 = []

        info1.append(self.textEdit11.toPlainText())
        info1.append(self.textEdit21.toPlainText())
        info1.append(self.textEdit31.toPlainText())
        info1.append(self.textEdit41.toPlainText())
        info1.append(self.textEdit51.toPlainText())
        info1.append(self.textEdit61.toPlainText())
        info1.append(self.textEdit71.toPlainText())
        info1.append(self.textEdit81.toPlainText())
        info1.append(self.textEdit91.toPlainText())
        info1.append(self.textEdit101.toPlainText())

        info2.append(self.textEdit12.toPlainText())
        info2.append(self.textEdit22.toPlainText())
        info2.append(self.textEdit32.toPlainText())
        info2.append(self.textEdit42.toPlainText())
        info2.append(self.textEdit52.toPlainText())
        info2.append(self.textEdit62.toPlainText())
        info2.append(self.textEdit72.toPlainText())
        info2.append(self.textEdit82.toPlainText())
        info2.append(self.textEdit92.toPlainText())
        info2.append(self.textEdit102.toPlainText())

        info3.append(self.textEdit13.toPlainText())
        info3.append(self.textEdit23.toPlainText())
        info3.append(self.textEdit33.toPlainText())
        info3.append(self.textEdit43.toPlainText())
        info3.append(self.textEdit53.toPlainText())
        info3.append(self.textEdit63.toPlainText())
        info3.append(self.textEdit73.toPlainText())
        info3.append(self.textEdit83.toPlainText())
        info3.append(self.textEdit93.toPlainText())
        info3.append(self.textEdit103.toPlainText())

        info4.append(self.textEdit14.toPlainText())
        info4.append(self.textEdit24.toPlainText())
        info4.append(self.textEdit34.toPlainText())
        info4.append(self.textEdit44.toPlainText())
        info4.append(self.textEdit54.toPlainText())
        info4.append(self.textEdit64.toPlainText())
        info4.append(self.textEdit74.toPlainText())
        info4.append(self.textEdit84.toPlainText())
        info4.append(self.textEdit94.toPlainText())
        info4.append(self.textEdit104.toPlainText())

        info5.append(self.textEdit15.toPlainText())
        info5.append(self.textEdit25.toPlainText())
        info5.append(self.textEdit35.toPlainText())
        info5.append(self.textEdit45.toPlainText())
        info5.append(self.textEdit55.toPlainText())
        info5.append(self.textEdit65.toPlainText())
        info5.append(self.textEdit75.toPlainText())
        info5.append(self.textEdit85.toPlainText())
        info5.append(self.textEdit95.toPlainText())
        info5.append(self.textEdit105.toPlainText())

        info6.append(self.textEdit16.toPlainText())
        info6.append(self.textEdit26.toPlainText())
        info6.append(self.textEdit36.toPlainText())
        info6.append(self.textEdit46.toPlainText())
        info6.append(self.textEdit56.toPlainText())
        info6.append(self.textEdit66.toPlainText())
        info6.append(self.textEdit76.toPlainText())
        info6.append(self.textEdit86.toPlainText())
        info6.append(self.textEdit96.toPlainText())
        info6.append(self.textEdit106.toPlainText())

        #print(info2)
        #print(int(info2[0]))

        font1 = Font(name='Tahoma',color='15428B', size=7, bold=True)
        font2 = Font(name='Trebuchet MS',color=colors.BLACK, size=7, bold=False)
        background1 = PatternFill('solid','BDD7EE')
        background2 = PatternFill('solid','EDEDED')

        wb = openpyxl.load_workbook(r'Test_Coverage.xlsx')

        sheet2 = wb.create_sheet('Test Coverage')

        title = ['Test Suite', 'Total', 'Not Run', '[%]', 'Passed', '[%]', 'Failed', '[%]', 'Blocked', '[%]', 'Completed[%]']

        for j in range (2,13):

            sheet2.cell(2,j).value = title[j-2]

            sheet2.cell(2,j).font = font1

            sheet2.cell(2,j).fill = background1

        for k in range (3,len(info1)+3):

            if info1[k-3] != '':


                sheet2.cell(k,2).value = info1[k-3]
                sheet2.cell(k,2).font = font2
                sheet2.cell(k,2).fill = background2

                sheet2.cell(k,3).value = int(info2[k-3])
                sheet2.cell(k,3).font = font2
                sheet2.cell(k,3).fill = background2

                sheet2.cell(k,4).value = int(info3[k-3])
                sheet2.cell(k,4).font = font2
                sheet2.cell(k,4).fill = background2

                sheet2.cell(k,5).value = round(100*(sheet2.cell(k,4).value)/(sheet2.cell(k,3).value),2)
                sheet2.cell(k,5).font = font2
                sheet2.cell(k,5).fill = background2

                sheet2.cell(k,6).value = int(info4[k-3])
                sheet2.cell(k,6).font = font2
                sheet2.cell(k,6).fill = background2

                sheet2.cell(k,7).value = round(100*(sheet2.cell(k,6).value)/(sheet2.cell(k,3).value),2)
                sheet2.cell(k,7).font = font2
                sheet2.cell(k,7).fill = background2

                sheet2.cell(k,8).value = int(info5[k-3])
                sheet2.cell(k,8).font = font2
                sheet2.cell(k,8).fill = background2

                sheet2.cell(k,9).value = round(100*(sheet2.cell(k,8).value)/(sheet2.cell(k,3).value),2)
                sheet2.cell(k,9).font = font2
                sheet2.cell(k,9).fill = background2

                sheet2.cell(k,10).value = int(info6[k-3])
                sheet2.cell(k,10).font = font2
                sheet2.cell(k,10).fill = background2

                sheet2.cell(k,11).value = round(100*(sheet2.cell(k,10).value)/(sheet2.cell(k,3).value),2)
                sheet2.cell(k,11).font = font2
                sheet2.cell(k,11).fill = background2

                sheet2.cell(k,12).value = round(100-sheet2.cell(k,5).value,2)
                sheet2.cell(k,12).font = font2
                sheet2.cell(k,12).fill = background2

            else:
                continue

        wb.save(r'Test_Coverage.xlsx')

        QMessageBox.about(self,'Result', 'Done!')

        os.system(r'Test_Coverage.xlsx')


        

        




if __name__ == '__main__':
    app = QApplication(sys.argv)
    #a = A()
    b = B()
    b.show()
    #a.button.clicked.connect(b.show)
    b.button.clicked.connect(b.cal)
    sys.exit(app.exec_())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值