自动运行 python GUI 测试的简单方法
Posted
技术标签:
【中文标题】自动运行 python GUI 测试的简单方法【英文标题】:Simple way to run a python GUI test automatically 【发布时间】:2018-04-05 11:59:59 【问题描述】:我使用python 3.5.2
和PyQt5
编写了一个小型模拟程序。我之前使用的是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 测试的简单方法的主要内容,如果未能解决你的问题,请参考以下文章