目前,在我尝试找出为什么某个测试可以在本地完美运行但在被VSTS代理启动时失败的第二周。
程序流程:
我在每个步骤上都有屏幕截图和调试输出,并且失败是在“等待CSS覆盖层被移除”阶段。等待超时,现在不管超时多久。
屏幕截图显示,即使验证过程成功完成,CSS覆盖图和微调框仍在旋转。几乎就像是时间紧迫。
方案和结果:
答案 0 :(得分:1)
documentation中需要注意的一件事:
配置为作为服务运行的代理可以运行Selenium测试 仅适用于无头浏览器。如果您没有使用无头浏览器, 或者,如果您正在运行桌面应用程序的UI测试,则Windows代理必须 配置为以自动登录的交互式过程运行 启用。
您还尝试运行Headless的事实可能意味着即使您正在作为服务运行并且仍然出现错误,也可能不是您的问题。在某些情况下,通过注销用户或更改屏幕分辨率,我无法使用远程计算机干扰将来的测试运行或录制视频。该文档继续介绍如何避免这种情况:
如果您使用远程桌面访问代理所在的计算机 自动登录运行,只需断开远程桌面的连接 导致计算机被锁定,并且在此计算机上运行的所有UI测试 代理可能会失败。为避免这种情况,请在遥控器上使用tscon命令 断开与远程桌面的连接。例如:
%windir%\System32\tscon.exe 1 /dest:console
在此示例中,数字“ 1”是远程桌面的ID 会议。该数字可能会在远程会话之间更改,但可以是 在任务管理器中查看。或者,自动查找当前 会话ID,创建一个包含以下代码的批处理文件:
for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do ( %windir%\System32\tscon.exe %%s /dest:console )
保存批处理文件并为其创建桌面快捷方式,然后更改快捷方式 属性以“以管理员身份运行”。从这里运行批处理文件 快捷方式与远程桌面断开连接,但保留用户界面 会话并允许UI测试运行。
答案 1 :(得分:0)
我将回答我自己的问题:我们创建了一个自动登录的新代理。我们观看了测试运行并按下F12键,控制台中出现了错误。
它正在尝试对用户名进行trim(),测试帐户看起来好像具有用户名,但我想实际上并不是这样。因此,由代理运行时,系统抛出了一个错误并且没有对其进行处理。
处理错误,一切顺利进行。漫长而沮丧的道路要到这里!希望这对以后的人有所帮助。
答案 2 :(得分:0)
请选中Azure DevOps Hands-On-Labs,以开始使用Azure Pipelines中的自动硒测试。希望这会有所帮助...