windows环境下jenkins运行scrcpy录屏失败的问题解决方案

录屏代码展示:

问题背景:
jenkins创建job,实现APP端的UI自动化测试,UI自动化框架中包含录屏功能,jenkins无法正确运行录屏命令


问题解析
1、前提:录屏是通过命令:scrcpy -r ./tm.mp4 ,jenkins默认不支持程序显示运行,所以会报上述错误
2、按照1中的问题原因修改了录屏命令:scrcpy -Nr ./tmp.mp4(-N是后台运行录屏),jenkins重新运行报了另外一个错误:结束录屏的时候无法结束掉录屏进程

3、按照错误提示,结束进程的命令改为:taskkill /F /IM scrcpy.exe,这个修改后正常了,但是调试发现录制的视频被损坏,无法播放。经过调试后发现scrcpy的特性,如果是加了-N参数后,只能接收Ctrl+C的信号结束录制,如果是强制杀掉进程,录制的视频就会不完整导致无法播放
4、根据上面的提示,改成Ctrl+C的方式结束录屏的话,会导致另外一个问题:

5、然后又回到最初的起点,考虑另外一种解决方法,让jenkins可以支持显示exe程序窗口:https://zhuanlan.zhihu.com/p/363331141(热心同学推荐);建议通过命令javaw -jar jenkins.war运行,这样可以不用一直显示命令行窗口,否则关闭命令行窗口,jenkins就会挂掉

综述,步骤5操作后重新配置jenkins,创建job可以正常的录制视频,并且allure中视频可播放。

关闭