首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >并行运行appium测试时的视频屏幕记录(在线程处理方面需要帮助)

并行运行appium测试时的视频屏幕记录(在线程处理方面需要帮助)
EN

Stack Overflow用户
提问于 2019-06-24 09:13:44
回答 1查看 1.3K关注 0票数 1

cmd/命令是正确的。我正在使用scrcpy录制视频。但我需要弄清楚如何在并行运行我的测试时记录Android设备的视频。

目前,如果我启动屏幕记录,它将不会开始并行运行测试。因为它会试图等待我的屏幕记录方法完成第一。

信息:开始记录到mp4文件:

它不会转到代码的下一行并运行测试。

但是我想同时做这两件事(在运行测试脚本时记录设备上发生的情况)。

启动屏幕第一次录制

代码语言:javascript
运行
复制
def start_screenrecording(udid):

    for o in udid: 
        sport = get_scrcpy_port()
        print("Starting scrcpy screen recording")
        cmd = "scrcpy --no-display " + "--serial " + o + " --record " + o + ".mp4 -p " + str(sport)  

然后开始在并行中运行测试脚本。

代码语言:javascript
运行
复制
def run_tests(udid):
    threads=[]

    for idx, device in enumerate(udid):
        cmd = "robot --variable PLATFORM_VERSION:" + str(get_platform_version_of_android_phone(device)) + " --variable DEVICE_UDID:" + str(device) + " --variable APPIUM_PORT:" + str(appiumInstances[idx]) + " --variable DRIVER_PATH:" + driverPath + " --outputdir logs/" + device + "_" + get_model_of_android_phone(device)

        #Start parallel screen recording for all the devices from this point
        #Continue running the test scripts while screen recording is ongoing
        t = threading.Thread(target=run_command, args = (cmd,))
        t.daemon = True
        threads.append(t)

    for x in threads:
        x.start()
        sleep(3)

    for x in threads:
        x.join()

我们如何运行cmds

代码语言:javascript
运行
复制
def run_command(cmd_array,os_name='posix'):
    p = subprocess.Popen(cmd_array,shell=True,cwd=os.getcwd())
    output,err = p.communicate()
    print('output=%s'%output)
    print('err=%s'%err)
    return output

Scrcpy - https://github.com/Genymobile/scrcpy

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-25 02:46:21

从问题中删除for循环,屏幕记录开始平稳地记录,同时在多个设备上执行我的测试脚本。

代码语言:javascript
运行
复制
def start_screenrecording(udid):
    for o in udid: 
        sport = get_scrcpy_port()
        print("Starting scrcpy screen recording") 

        cmd = "scrcpy --no-display " + "--serial " + o + " --record " + o + ".mp4 -p " + str(sport) 
        scrcpyInstances.append(sport)

        t = threading.Thread(target=run_command, args = (cmd,))
        t.daemon = True
        t.start()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56733347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档