我们有一个非常复杂的(非Web,.NET)软件系统,因此在测试金字塔的最后一步,我们开始创建自动化的UI测试。这些测试主要是基于UIA3和FlaUI的系统不同部分之间的端到端测试。我们称它们为用例测试。
现在的想法是对系统预先配置一个Azure VM,将(新开发的)UI测试定期部署到该计算机上并在该计算机上运行。 (旁注:目前,由于复杂性,我们希望避免定期发布系统本身。四分之一的间隔对于系统来说已经足够了。更有趣的是扩展UI测试套件并获得其用例,测试自动运行。)
在Azure构建管道中,我们运行UI测试套件本身的一些基本单元测试(仅解决用例测试中使用的基本非UI功能)。然后,我们将构建工件(带有用例测试和xUnit控制台运行程序的程序集)复制到具有预安装的软件系统的Azure VM。
到目前为止,一切都很简单。但是我们如何在那里运行用例测试呢?要运行应用程序(WinForms / WPF应用程序),它需要一个交互式会话。我还不清楚如何进行远程交互式登录,触发测试等。
任何帮助,提示和想法都非常感谢。
谢谢Marko
答案 0 :(得分:0)
经过一些调查和大量的尝试和错误,解决方案的草稿是这样的:
复制所有工件以部署在文件夹中(例如project-root / deploy)
我在构建环境中使用FAKE,它看起来像这样:
- publish: $(System.DefaultWorkingDirectory)/deploy
artifact: UC-Test-Artifacts
在(yaml)构建管道中添加发布任务
Full Access
创建令牌以供代理以后使用
vn6yseuyq2brbgze3rylo...
,但这不是一个好主意!)https://dev.azure.com/{your-organization)/_settings/agentpools
创建一个代理池
bvms
New Agent
创建代理
Get the Agent
Azrue Pipelines
的说明使用2个代理作业配置发布管道
代理1:
代理人池:vs2017-win2016
UC-Test-Artifacts
工件下载:bvms
代理2:
代理人池:vs2017-win2016
UC-Test-Artifacts
$(System.DefaultWorkingDirectory)/UC-Test-Artifacts/UC-Test-Artifacts
代理1的步骤:
天蓝色文件副本
来源:Azure VM
c:\_temp
c:\_temp\xunit.console.exe c:\_temp\Bvms.UiAutomation.UseCaseTests.dll
代理2的步骤:
Power Shell脚本
脚本:{{1}}
备注:将工件复制到VM的步骤可能会被发布机制后面的选项所取代。