Azure DevOps和Pywinauto,在Azure Pipelines中运行测试时获取TimeoutErrors



有人在Azure Pipelines中使用Pywinauto的经验吗?

我们目前正在使用Azure DevOps/Pipeline、Pytest和Pywinauto,目的是通过在我们的Azure Pipeline中运行使用python/Pywinauto创建的测试来测试应用程序UI。

当测试以100%的通过率在本地运行时,python/pywinauto测试运行得非常好

当管道运行时,使用我们创建的python/pywinauto测试测试应用程序的步骤将失败,并显示";超时错误">

=========================== short test summary info ===========================
ERROR test_AppFrame.py::test_imageCapture - pywinauto.timings.TimeoutError
ERROR test_AppFrame.py::test_captureMultipleImages - pywinauto.timings.Tim...
ERROR test_AppFrame.py::test_imageCaptureFalseFail - pywinauto.timings.Tim...
ERROR test_AppFrame.py::test_imageBookmarks - pywinauto.timings.TimeoutError
ERROR test_AppFrame.py::test_imagesFromMultipleExams - pywinauto.timings.T...
ERROR test_AppFreeze.py::test_freezeImage - pywinauto.timings.TimeoutError
ERROR test_AppFreeze.py::test_freezeImageFalseFail - pywinauto.timings.Tim...
ERROR test_AppRecord.py::test_recordMP4 - pywinauto.timings.TimeoutError
ERROR test_AppRecord.py::test_recordCompound - pywinauto.timings.TimeoutError
ERROR test_AppRecord.py::test_captureMultipleSameLengthRecordings - pywina...
ERROR test_AppRecord.py::test_captureVariousLengthRecordings - pywinauto.t...
ERROR test_AppRecord.py::test_recordFalseFail - pywinauto.timings.TimeoutE...
ERROR test_AppRecord.py::test_RecordMultipleExams - pywinauto.timings.Time...

这是管道的问题吗?pywinauto如何需要实际的屏幕/监视器?

谢谢你的帮助!

我尝试了几件事,它适用于我的案例:由于我有Pywinauto+python-selenium(组合脚本(来测试Windows应用程序,并在Firefox状态页面中查看它们的状态。

  1. 首先,通过创建自托管代理,使您的测试机在Azure DevOps上可用。使用此链接如何创建:https://azureops.org/articles/azure-devops-self-hosted-agent/

  2. 创建代理后,将其添加到代理池中,通过项目设置>gt;代理池(在"管道"选项卡下(

  3. 手动在测试机中安装所有的python包,例如python、pywinauto、selenium、seleniumFirefox、Pandas。

4.现在让我们在Azure中创建管道。。。

  • 创建"新管道">
  • 单击"使用经典edtior"选项
  • 选择您的存储库,azure repo git或gitHub
  • 选择空作业并将管道代理池更改为";您的自托管代理池">
  • 添加任务,从python脚本开始,并给出文件路径。我们这里不需要python版本,因为我们已经在本地机器上安装了它
  • 添加所需的其他报告任务
  • 保存并运行。。它将在此处输入图像描述

我希望这会有所帮助。快乐自动化:(

最新更新