WeAutomate流程开发规范
1.1 高健壮性机器人要求
对于复杂度为O(n2)的脚本或者脚本涉及到UI页面操作就必须使用Try-catch+SubProcess保证高健壮性。
Tips:在读写文件,比如读Excel的时候,也可以放入到Try-Catch-Finally里,如果Excel被打开了则脚本执行打开Excel会出错,我们可以在Catch里调用脚本杀掉Excel进程,在下一次Try的时候就可以顺利打开文件了
1.2 转变成机器思维的要求
比如我们将一个Excel表格里的内容,循环100次录入到web页面里。如果在没有模板可以一次导入的情况下,我们需要循环100次。
人的操作思维:
1, 登陆网页。
2, 选中相应的内容copy到网页里,并提交。
3, 循环填入下一条。
4, 结束。
当用脚本实现时,我们建议:
1, 打开excel读取1000条内容到内存里。可以避免文件交叉操作导致任务失败。
2, 循环内存中1000条数据的第一条,并判断网页是否ready可以填入内容,并提交。如果网页未ready那么就打开网页。
3, 循环填入下一条。
4, 结束。
这样做的好处是:不管网页是否稳定,即便网络中断几分钟,都可以顺利的保证完成录入任务。
1.3 便于定位问题添加必要打印的要求
当开发完成转维后,想要再去查找问题就比较困难, 所以在开发初期增加足够的日志,便于后期定位问题。
例如在进入新脚本的时候、查询到结果的时候、关键节点等。
1.4 查询再执行类增加校验的要求
比如下图处理当前单处理的问题,要把单号记录下来,便于出现问题后排查问题,如果允许的话可以在失败的时候截图保留截图。
如果查询结果不一致,则继续查询一次,多次后未果,则发送通知消息。
1.5 使用文字或者相对路径定位的要求
xpath=//button[text()="Reset"]
xpath=//a[contains(text(),'我的任务')]
xpath=//*[contains(@id,"datatable")]/div[2]/div[1]/div/div[4]/div
xpath=//*[text()="提交"]
或者使用相对路径,这样在网页变动后还能增加成功定位的概率。网页操作中xpath的定位非常重要,可以参考网上资料进行深入学习。
1.6 使用GETTABLE代替循环的要求
在很多网页中某些表比较长,当前窗口显示不全,可以使用gettable,这样可以避免取不到拖动后才能看到的元素,如下图右侧的元素定位。
当然,有些看上去是表的展示,单实际并不是表,还是要循环去操作。
对于gettable的使用可以登陆www.ilearningx.huawei.com,搜索AntRobot,查看高级课程的9.2章节
1.7 双重保护确保任务达成的要求
比如对于鼠标移动网页元素上面的时候才会出现的菜单,actionchains 不一定会每次稳定运行。
此时可以增加ClickPicxx的操作。
1.8 串行任务改并行的要求
比如登陆网站下载几千张图片,并对图片做OCR识别,比较推荐的解决办法是:
1,WeAutomate负责下载 图片,并拆分成不同的小组,比如100张一组。
2,一组完成下载后即调用Java或者python等实现处理每个小组的图片,并继续下载下一组照片
3,WeAutomate判断图片所有图片识别结束后进行信息汇总。
4,最后一个小组与倒数第二个小组都完成,或者所有小组都完成,则执行完毕。
1.9 拆分超长流程的要求
不要将所有的流程全部放在一个子脚本/Script里,跟写代码时不允许一个函数体超过150行或者200行一个道理。
缺点:
1,太长的流程很难读懂,别人很难很快了解流程的结构
2,没有异常处理逻辑
3,如果系统中出现小问题,则进程将终止
改进建议:主页保留流程主线,把大部分二级处理逻辑移到子页之后
对完成的任务进行合理的拆分。
1.10 安全开发规范要求
1,WeAutomate Studio支持敏感信息本地存储、使用双重加密
2,管理中心运行账号与开发账号隔离
3,开发人员只接触测试账号
1.11 其它要求
1,流程应该简洁、干净且有逻辑
2,应当在在定义好流程的输入、输出、处理过程后,再着手进行开发
3,保存流程前,应该先检查所有Error。开发过程中的Error应当保证可控;开发完成后流程中不应当存在Error
- 点赞
- 收藏
- 关注作者
评论(0)