自动运行 python GUI 测试的简单方法

Posted

技术标签:

【中文标题】自动运行 python GUI 测试的简单方法【英文标题】:Simple way to run a python GUI test automatically 【发布时间】:2018-04-05 11:59:59 【问题描述】:

我使用python 3.5.2PyQt5 编写了一个小型模拟程序。我之前使用的是PyQt4,但遇到了Qt 内部发生间歇性分段错误的问题。出于这个原因,测试需要程序运行大约 20 次以确保没有发生故障。

现在我想知道是否有一种简单的方法可以编写一个可以使用gdb run 运行的脚本,它可以执行以下操作:

for i in range(20):
    run MyProgram.py
    wait(startup time)
    input keyboard commands with appropriate intervals

    wait for program to run
    if error occurs:
        force kill MyProgram.py
        continue loop
    elif runtime > some value:
        input more keyboard commands
        continue loop

有没有办法在不安装任何昂贵软件的情况下做到这一点?

【问题讨论】:

为什么要在 gdb 中运行脚本?你可以用同样的方法在没有 gdb 的情况下测试它。 @ks1322 在 gdb 中运行它让我有机会运行 traceback 并将输出保存到日志文件以供以后使用。如果没有 gdb,我不确定如何做到这一点。 【参考方案1】:

测试要求程序运行大约 20 次以确保 没有发生故障

您不必在 gdb 中测试程序,因为您想在程序崩溃时查看回溯。通常,如果程序接收到 SIGSEGV 信号,程序的进程就会终止并转储内核。稍后您可以在 gdb 中打开核心转储并查看崩溃进程的回溯:

gdb program core
...
(gdb) bt
...

请参阅How to generate a core dump in Linux when a process gets a segmentation fault? 如何在 Linux 上启用核心转储保存。

【讨论】:

以上是关于自动运行 python GUI 测试的简单方法的主要内容,如果未能解决你的问题,请参考以下文章

Centos7下安装Dogtail GUI自动化测试工具并打开sniff工具过程中遇到的问题解决方法

如何进行自动化PDF测试?这里有真正简单明了的方法

如何进行自动化PDF测试?这里有真正简单明了的方法

如何在java中使用sikuli进行自动化测试

GUI自动化测试中优化测试用例思维方法

从命令行自动执行 iOS monotouch GUI 测试