美文网首页
auto.pro npm模块拓展二(使用stream来增强流程)

auto.pro npm模块拓展二(使用stream来增强流程)

作者: 魔力sama | 来源:发表于2019-11-20 18:09 被阅读0次

    脚本应用最重要的是什么?不是UI,不是性能,而是稳定、可控!


    稳.jpg

    通过我自己的学习和实践,总结一些增强稳定性的方法。

    操作不生效

    大部分人写脚本时,操作之后通过sleep setTimeout等延时来等待下一个环节,一旦操作不生效,脚本立马嗝屁。操作不生效应视为一种常态,有时是脚本出现玄学问题,有时是目标应用的卡顿,有时是突然弹出的一条系统提示、短信,总之是高触发概率的存在。

    执行一次脚本,可以抽象为:操作 + 预期:

    • 点击一个按钮(操作),进入一个页面(预期),继续点击(操作)......
    • 发送一个http,等待正确的结果。
      只要保证一套操作和预期顺利匹配,那个整个程序都能有很好的健壮性。

    先来一个简单的保证机制代码

    var pt = findImg(img1)
    click(pt)
    
    var next = findImg(img2)
    while (!next) {
      click(pt)
      next = findImg(img2)
    }
    
    click(next)
    var next2 = findImg(img3)
    while (!next2) {
      click(next)
      next2 = findImg(img3)
    }
    ...
    
    我不能接受.jpeg

    理想的代码是无需重复写上一步,设计成这样,add添加一次操作和预期,并能将结果传入下一步,预期不通过时重新执行操作。

    add(pt => click(pt), (clickResult) => findImg(img1))
    add(([clickResult, findResult]) => click(findResult), () => {})
    ...
    

    最后还能指定预期通过的值,以及重试次数

    // 执行操作时返回1,预期是这个结果等于2,当结果为true时放行进入下一步,不为true则重试最多10次
    add(() => 1, v => v + 1 == 2, true, 10)
    

    未完待续

    相关文章

      网友评论

          本文标题:auto.pro npm模块拓展二(使用stream来增强流程)

          本文链接:https://www.haomeiwen.com/subject/oatgictx.html