代码

    def report_creat(self):  # 生成测试报告
        win32gui.EnumWindows(self.get_all_hwnd, 0)

        for h, t in self.hwnd_title.items():
            print(h, t)
            if t.find("MainWindow") >= 0:
                print(t)
                hwnd = win32gui.FindWindow(None, t)
                screen = QApplication.primaryScreen()
                img = screen.grabWindow(hwnd).toImage()
                img.save("screenshot.jpg")
                self.generate_report_tem("screenshot.jpg")

                os.remove("screenshot.jpg")

                # print(self.checkBox_led.isChecked(), self.checkBox_motor.isChecked())

    def get_all_hwnd(self, hwnd, mouse):  # 获取待截图的软件名称
        if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd):
            self.hwnd_title.update({hwnd: win32gui.GetWindowText(hwnd)})

    def generate_report_tem(self, img):  # 生成报告模板
        doc = Document()
        doc.styles['Normal'].font.name = 'Times New Roman'
        doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋')

        now = datetime.datetime.now()
        rep_name = '输出文件\\' + '测试报告_' + now.strftime("%Y%m%d%H%M%S") + '.docx'  # 报告名称
        doc.add_heading("xxxx-xxx-xx-xxx端-全检测试记录", level=1)  # 添加测试记录1级标题
        table = doc.add_table(rows=5, cols=2, style="Table Grid")
        table.cell(0, 0).text = "测试日期"
        table.cell(1, 0).text = "测试设备"
        table.cell(2, 0).text = "测试结果"
        table.cell(3, 0).text = "测试记录"
        table.cell(4, 0).text = "测试人员\n"

        table.cell(0, 1).text = now.strftime("%Y-%m-%d %H:%M:%S")
        table.cell(2, 1).text = u"   \u2610 YES            \u2610 NO"
        # 设置表格宽度,图片大小会影响效果
        table.cell(0, 1).width = Cm(18)

        # 获取表格对象第2行第2列中的段落
        cell_mac = table.cell(1, 1)
        p_mac = cell_mac.paragraphs[0]
        # 添加测试结果,可根据具体情况修改条件
        run_mac = p_mac.add_run("  MAC\n")
        # 表格中添加图片
        run_mac.add_picture(str(self.SCS_Thread_object.mac_img + ".png"), width=Cm(5))  # 图片大小会影响表格宽度

        # 获取表格对象第4行第2列中的段落
        cell = table.cell(3, 1)
        p = cell.paragraphs[0]
        # 添加测试结果,可根据具体情况修改条件
        run = p.add_run("SCS-UT.exe\n")
        # 表格中添加图片
        run.add_picture(img, width=Cm(5))  # 图片大小会影响表格宽度

        doc.save(rep_name)

        box_text = "测试报告名字:\n" + rep_name
        QMessageBox.information(self, "测试报告生成成功", box_text, QMessageBox.Close)

在软件开发中,测试是非常重要的一个环节。为了确保软件质量,我们需要对软件进行充分的测试,并生成相应的测试报告。然而,手动生成测试报告不仅费时费力,还容易出现错误。因此,自动化测试报告生成工具就应运而生。

本文将介绍一款基于Python的自动化测试报告生成器,它能够自动完成测试、生成报告等任务,大大提高了测试效率和准确性。

程序介绍

这个测试报告生成器基于OpenCV和docx库实现,可以自动枚举窗口并找到指定名称的窗口,截取其中的图像,根据图像和当前时间生成测试报告模板,并保存在输出文件夹中。

具体来说,程序包含以下几个函数:

  1. report_creat(self):生成测试报告的主函数,通过枚举窗口并找到指定名称的窗口,截取其中的图像,根据图像和当前时间生成测试报告模板,并保存在输出文件夹中。

  2. get_all_hwnd(self, hwnd, mouse):获取所有窗口句柄及其标题,用于在report_creat(self)中寻找指定的窗口。

  3. generate_report_tem(self, img):生成测试报告模板,定义了报告的格式和内容,并将之前保存的截图插入到表格中。最终,将报告以.docx格式保存,并弹出提示框告知用户报告生成成功。

如何使用

使用这个测试报告生成器非常简单。只需要按照以下步骤操作即可:

  1. 安装Python和必要的依赖库(OpenCV和docx)。

  2. 打开测试软件,并在程序中调用report_creat()函数。如果你对这个函数不熟悉,可以先阅读一下代码注释,了解其详细功能。

  3. 程序会自动枚举所有窗口并显示它们的标题。选择你需要截取的窗口并输入窗口标题。如果窗口不存在或者标题错误,程序会弹出相应的错误提示。

  4. 程序会自动截取指定窗口的图像,并根据当前时间生成测试报告模板。

  5. 检查报告模板是否正确,并将其中的图片替换为实际测试结果。

  6. 保存报告并进行必要的修改和编辑。

通过以上简单的步骤,你就可以轻松地生成高质量的测试报告,并大大提高测试的效率和准确性。

总结

测试是软件开发过程中不可缺少的一个环节。手动生成测试报告费时费力,容易出错。因此,自动化测试报告生成工具成为了越来越多开发者的选择。本文介绍了一款基于Python的自动化测试报告生成器,它可以自动完成测试、生成报告等任务,具有高效、准确、易用等优点。如果你也是软件开发者,不妨试试这个工具,相信它会给你带来意想不到的便利和收益。

注:本文除代码外内容由GPT-3.5生成

Logo

一站式 AI 云服务平台

更多推荐