设备太多时如何快速按计划来启动设备?

在使用自动化脚本过程中,如果我们的设备比较多,比如:几百台甚至几千台时。这么多设备我们不可能一台一台的手工启动。我们在冰狐后台选择设备管理里可以批量选择设备执行,如果设备太多的话也比较麻烦,如果设备分类型,或者计划来启动的话更麻烦。可以使用微服务来完美解决这类问题。下面举个例子来说明:

需求:
假设我们有100台手机做任务,需求如下:
  1. 按顺序来启动每台手机任务,移动端脚本名为:test。
  2. 两次启动之间需要加一个随机的间隔时间。
  3. 将自定义的参数传给每个启动的手机任务,自定义参数类型:string,参数名:url。

需求分析:
  1. 以上需求本质上是做100台手机的调度功能,仅依靠前端的js脚本是无法实现的,所以必须使用微服务。
  2. 由于需要输入参数url,所以我们可以使用「业务处理」服务来实现,添加一个url参数。
  3. 两手机任务启动间隔时间也可以做成参数,让用户自己选择间隔的范围。所以可以添加为minInterval和maxInterval两个参数分别表示最小和最大间隔时间(毫秒)。

实现:
根据上述分析,我们可以先建立「业务处理」服务,然后再编写对应的「微服务脚本」来实现调度功能。
  1. 新建业务处理服务。在网页端选择【微服务】/【业务处理】,点击右上角的"+服务"按钮,新建一个名为demo的业务处理服务。
  2. 添加参数。点击"参数"按钮,添加三个参数,分别为:【名称:url,类型:字符串】;【名称:minInterval,类型:整型】;【名称:maxInterval,类型:整型】。
  3. 新建微服务脚本。在网页端选择【微服务】/【微服务脚本】,点击右上角的"+脚本"按钮,新建一个名为demo的脚本。
  4. 关联脚本和业务处理服务。在网页端选择【微服务】/【业务处理】,点击"编辑"按钮,选择刚创建的"demo"为脚本。
  5. 实现微服务脚本。脚本的核心功能为:接收参数,根据参数和调度要求来启动每个手机任务。
    // url、minInterval,maxInterval为业务处理服务透传过来的参数
    function main(url, minInterval, maxInterval) {
        var devices = deviceList();
        for (var device of devices) {
            // 仅调度在线手机
            if (device.onlineState == 1) {
                // 在手机上执行移动端名为"test"的脚本,这里的url参数会直接透传给移动端脚本的main函数参数。
                scriptExe('test', device.uuid, [url], true);
    
                // 在minInterval和maxInterval之间随机延时一段时间
                sleep(Math.random() * (maxInterval - minInterval) + minInterval);
            }
        }
    }                        
  6. 执行服务。在网页端【微服务】/【业务处理】,选择刚创建的"demo"服务,然后点击"执行"按钮,填充相关参数,点击"执行"即可执行代码。
  7. 如果您还没有手机端脚本(移动端脚本),可以参考下面的代码:
    // url参数的值,是上面的微服务脚本通过调用scriptExe函数透传过来的。
    function main(url) {
        console.log('url:' + url);
    }                   

商务合作QQ:3765323427
Copyright © 2021-2024 冰狐智能辅助. All rights reserved. 浙ICP备15043866号 《冰狐智能辅助服务协议》