从代码,效率,稳定角度进行流程优化V1.0——By.福建组
评论
收藏

从代码,效率,稳定角度进行流程优化V1.0——By.福建组

经验分享
一禅
2023-09-20 20:55·浏览量:6912
一禅
发布于 2023-09-20 20:46更新于 2023-09-20 20:556912浏览

背景:

       各位小伙伴是否经常被频繁报错找不到元素频繁出现的各种弹窗导致报错每次流程测试都需要完整运行才可以流程报错找不到原因所在、经常使用到非目标变量等烦恼所困扰,来对你的流程应用进行一次优化升阶吧,来一波变得更强!!!冲呀

适合人群:

    • 应用开发者;
    • 完成影刀基础课程学习;
    • 能独立完成流程搭建;

目标:

    • 提高代码的可读性,复用性,继承性,标准化流程的开发与共享。
    • 优化提升流程的开发效率,运行效率,运行稳定。

目录:

   

一.  代码整理优化

       首先聚焦于最常用的开发应用板块,通过对变量、参数、流程封装、指令封装等的标准化,增强流程可读性,复用性,提前规避很多开发过程中的烦恼。

   1.1  变量/元素命名标准化:

       适用范围:变量,元素。

       效果:  

      • 提高可读性,方便以后理解流程逻辑;
      • 减少因为变量名称不清晰导致的参数引用错误。

       建议:

      1. 命名标注类型、来源、名称。命名中标注类型可以有效防止类型错误的问题,标注来源分类的同时提高辨识度,名称是最直接的区分标识。
        • 变量:类型_主体_内容 ---- list_评论信息_回复时间(评论的回复时间的列表)
        • 元素:类型_页面_名称 ---- 相似元素组_订单搜索页_订单金额(订单搜索页中的所有订单金额)。
        • 参考扩展资料中的【规范文件】开发推荐规范及【影刀课程】开发规范。
        • PS:准化的命名规范,虽然会在捕捉元素的时候增加命名的时间,但是标准化之后代码可读性会有质的提升。详细可以参考本节附件链接中的影刀课程-开发规范及开发推荐规范。
      2. 特殊类型单独增加标注。特殊变量增加额外标识以作区分,变量引用不易混乱,可参考以下示例。
        • 循环参数增加loop ---- 循环变量在循环体内引用频次极高,且名称容易和普通变量类似。
        • 流程参数增加tr ---- 流程参数需要与其他流程交换数据,命名建议独立标识防止名称相似。
        • 全局变量增加ove ---- 全局变量在所有流程中都可以被引用,出现频次过高建议独立标识。
      3. 善用元素分组。影刀元素会根据网页自动分组,可根据自己的需求对分组及时进行调整。

       扩展资料:

      • 【影刀课程】  

开发规范


      • 【规范文件】开发推荐规范:参考下面两张图片,后续补充在线版本。

           

                   

   1.2  流程封装

      效果:

      • 规范子流程命名及分组和备注习惯,提高项目的可读性。
      • 流程模块化管理,方便进行单元测试及修改,提高开发效率。

       建议:

      1. 重复流程模块化封装。遇到可能重复调用的或可模块化的流程,能封装就不建议复制粘贴,封装的主要优点如下:
        • 代码整齐优雅 ---- 有效避免冗长流程代码,建议一个子流程的的指令数不要超过50个。
        • 减少重复修改 ---- 重复流程封装多次调用后,修改时只需修改一处即可。
        • 高效单元测试 ---- 下一个知识点详细介绍,再也不用每次测试要全部跑一遍所有流程咯。
        • 绘制流程图 ---- 复杂点的流程可以按模块绘制流程图,使业务流程一目了然。
      2. 善用默认值进行单元测试。单独封装子流程的一大好处,可以通过设置流程参数默认值等方式直接进行单元测试。
        • 默认值设置范围:流程参数,全局变量。
        • 通过默认值进行单元测试 ---- 流程参数和全局变量都可以设置默认值,这就使得可以通过修改参数默认值的方式直接从子流程运行,无需将与本次测试无关部分的流程运行增加测试成本(等待流程运行的时间)。
        • 参考【示例】默认值设置。
      3. 标准化流程命名及分组。子流程建议取一个能明显说明功能的名称,并且做好分类分组存储,每个子流程前可增加字母标识分类。
        • 明确功能划分 ---- 主流程负责与用户进行交互,子流程负责单独模块化功能。
        • 字母标识分类 ---- 子流程名称前面增加字母代表分类。
        • 高辨识度命名 ---- 子流程名称能清晰表达主要功能,有必要可以在命名中增加主要输入输出的参数说明。
        • 参考扩展资料中的【示例】官方应用_评价自动分类。
      4. 及时增加备注和折叠。良好的备注习惯,通过备注指令增加说明,折叠帮助我们快速整理。
        • PS:一定,一定,一定要及时增加备注,不要相信自己的记忆,稍微长点的流程,一个月不动之后就基本忘得差不多了,一定要加备注,还有较长的流程及时用折叠进行收纳。

      扩展资料:

      • 【影刀课程】

流程的封装


      • 【影刀课程:05 实操四部曲】  

任务的解析:流程图


      • 【示例】默认值设置:分别设置流程参数和全局变量的默认值,直接运行会使用默认值进行输出。    
      • 【示例】官方应用_评价自动分类:

               

1.3  自定义指令

   效果:

      • 提高流程开发的复用率

   建议:

      1. 活用自定义指令一些常见操作在官方的自定义指令集中都已经为大家做好了封装,建议快速完整浏览一下全部的自定义指令集功能,在需要的时候可以减少开发时间,并且在网页元素更新的时候,官方指令集一般会及时更新确保支持,可以减少大家的维护成本。
      2. 常用软件操作封装自定义指令企业在不同流程会重复用到的流程,可以根据自己的需求封装属于自己的指令集,提高流程的复用率,减少开发成本。

二.  效率优化

       其次运行效率力流程耗时方面,通过excel读写,网页处理,业务流程等的效率提升,在保证稳定性的前提条件下,降低运行耗时。

   2.1  EXCEL读写效率优化

       效果:

      • 减少因为EXCEL读写消耗的时间。
      • PS:EXCEl的启动、读取、写入等都需要消耗时间,数据量比较大的时候反复读取会极大的增加程序运行时间。提高数据的处理和存储效率。

      建议:

      1. 优化流程减少反复读写的时间。既然大多数的时间是消耗在了反复读取和写入上,那可以通过修改流程逻辑来实现时间优化。
        • 例如利用一次的批量读取降低读取次数。
        • 用批量写入代替多次的单元格写入等。
      2. 借助数据表格、列表等进行数据处理。较为复杂的应用需要反复进行数据处理的,可以考虑借助影刀的数据表格及列表进行数据处理。
        • PS:原理 ---- 影刀数据表格和列表数据都是存储在电脑内存中的,读取和操作的时候无需像excel一样打开和建立连接等流程,可以直接快速完成处理。待全部处理完成之后再一次写入excel可以大幅度降低处理时长。
      3. 使用影刀现成指令和EXCEL公式。一些常见的处理流程可借助影刀的现有指令去实现,通常官方会用效率比较高的方式封装。举例如下:
        • 确定表头所在列号 ---- 可以采用EXCEL扩展的查找数据所在列,查找第一行可直接获取。
        • 按规则读取表格内容 ---- 可借助筛选+读取筛选内容实现。
        • 计算表格数据并写入 ---- 可借助指令批量向下填充(公式)自动填充。
      4. 学习pandas进行高效处理。具备python基础的小伙伴,可以考虑学习pandas库,可以做更多对表格的强大处理,且速度非常快。参考拓展资料中的pandas学习课程。
      5. 数据库处理数据。在企业it团队支撑足够的情况下,数据量大且数据处理复杂的,建议采用专业的数据库进行数据处理,影刀有直接连接数据库的指令。参考拓展资料中的【影刀课程】数据库入门课程

       拓展资料:

      • pandas学习课程链接(个人学习课程,可寻找其他优质课程)

pandas学习课程链接


      • 【影刀课程】

数据库入门课程

   2.2  网页处理优化

       效果:    

      • 减少因为网页加载带来的时间消耗。
      • 提高获取界面中数据的速度。

      建议:

      1. 网页跳转优化。通过点击网页跳转是人为的操作逻辑,对于计算机来说存在一些更快速的方法可以达到想要的效果。优化技巧举例如下:
        • 链接直达代替点击跳转 ---- 部分网页位置可以通过链接直接进入,用打开网页的方式替代从初始网页点击跳转,减少耗时提高稳定性。
        • 接口或批量导入提效 ---- 有些网站的固定操作有一些快捷导入的方式,有的是接口的形式,有的是EXCEL表格批量导入的形式,通过这些方法可以大幅度减少在网页中操作的消耗时间。
      2. 等待优化。在保证流程稳定性的前提条件下,降低无效等待时间。优化技巧举例如下:
        • 减少固定等待 ---- 用等待网页加载完成或者等待元素出现/消失代替原有的固定时长等待。
        • 调整默认等待时间 ---- 一些比较稳定的位置减少指令默认1秒的等待时间(指令-高级中进行设置)。
      3. 巧用数据抓取。 整齐数据用数据抓取替代循环相似元素组。规范整齐的数据可以考虑采用引导的数据抓取指令一次获取下来,循环相似元素的方式可操作性虽然比较强,但是效率略低于数据抓取。
        • 只适用于数据抓取  ---- 如果操作流程涉及到了点击等操作类的,还是建议使用相似元素组。
        • 编辑列进行精细化编辑 ---- 数据抓取支持按列进行元素编辑,更精准的设计提取的数据。
        • 数据列处理 ---- 在数据抓取的界面可以进行简单的数据预处理,例如提取数字、正则处理等。
        • 参考【影刀专题课程】网页数据一键获取_批量数据抓取。
      4. 数据监听快速获取数据。界面中的数据获取速度比较慢,可考虑通过网页监听解析数据包的形式,从源头获取数据而非界面中,稳定且快速但是门槛稍高。
        • 参考拓展资料【影刀专题课程】

       拓展资料:

        • 【影刀专题课程】

网页数据一键获取_批量数据抓取


        • 【影刀专题课程】

http&网页监听

   2.3  业务逻辑优化

       建议:

        1. 减少重复数据获取。不同的业务流程可能来源于同一组数据源,重复的数据获取会导致消耗不必要的流程运行时间,可以考虑从整体上对流程进行整合节约时间。
        2. 优化业务流程线。通过对流程再设计省去原有过程中不必要的地方,争取直接从数据源一步到位。常见优化点如下:
          • 在录入数据的时候是否有批量导入的功能。
          • 能否用共享盘或者在线表格的方式替代掉从其他突进传递文件并获取文件的过程。

三.  运行稳定优化

       流程运行完成之后,如果防止意外情况的出现导致流程无法运行,以及异常出现后可以快速定位问题的机制。

   3.1  确保流程稳定完成

       效果:

      • 减少已知可能出现的问题导致程序报错停止。
      • 在出现未知问题时的及时纠正保证程序顺利执行。

      建议:

      1. 网页加载容错。网页加载在网络较慢时会出现加载超时或者加载失败等情况。常见情况及对应容错如下:
        • 网页加载超时容错 ---- 打开网页指令默认会等待网页加载20s完成,在网络较慢的时候20s内未加载完成程序就会报错。可以考虑通过增加网页默认加载时长以及增加超时报错后重试的方式增加稳定性。
        • 网页加载失败容错 ---- 有些网页由于特殊原因会出现加载失败的情况。
      2. 元素编辑增强通用性。捕捉元素的时候,影刀会智能识别用户需求确定元素,但是个别情况下影刀直接识别到的元素可能并不是我们想要的,会出现找不到元素的报错。减少这种报错的常见方式如下:
        • 元素编辑精准定位 ---- 可以通过编辑取消掉容易变化的属性,保留相对比较稳定且能精准定位所需元素的数据,手动调整到所需要的元素。详细方法参考影刀专题课程元素的编辑。
        • xpath技巧 ---- 可以极大增强元素稳定性的技巧,稍微有点点难,但是很值得学一下。欢迎大家学习拓展资料中的【影刀高级课程】XPath - 定位元素的终极秘诀。
      3. 弹窗通知及广告处理。是否有被网页中频繁出现的弹窗和广告所烦恼?还在通过每次出现广告再手动捕捉的方式去处理广告?来看看更简单高效的处理方法吧:
        • 【官方自定义指令】广告杀手指令集 ---- 全程守护你的应用不受弹窗及广告影响,拖拽即用。搜索自定义指令集,广告杀手

               

        • 借助xpath隐藏通知板块 ---- 观察网页结构,寻找出弹窗的共性,然后借助xpath和JavaScript脚本实现将通知板块隐藏。门槛稍高初学者建议使用广告杀手指令集。
      • trycatch处理特殊情况。出现一些预料之外的错误的时候,就无法通过提前的预防区避免错误的发生,这时候就要借助trycatch去对这种特殊情况及时做处理,常见的方式有重做、记录并跳过、钉钉发消息提醒相关人员处理等。参考拓展资料【影刀课程】错误的处理。

       拓展资料:

      • 【影刀高级课程】

XPath - 定位元素的终极秘诀


      • 【影刀课程】

错误的处理

   3.2  数据备份用于溯源

       效果

      • 使程序具备可以及时查看数据细节的能力。
      • 建立相对完善的数据溯源机制

       建议:

      1. 系统打印日志留存。打印日志指令不单是在测试的时候为我们提供一个控制台显示数据的功能,在关键位置及时添加答应日志指令输出关键信息,这份信息会随着每一次流程的运行完整保存下来,如果对某次数据有异议可及时查看对应的日志确认关键数据。
      2. 过程数据保留。流程运行过程中阶段性的过程数据建议及时通过excel或者其他形式进行保存,并且及时规范整理。过程数据保留目的如下:
        • 一方面保证有可以进行查证的数据源。
        • 另一方面更全面的数据可以为后续的数据分析做准备。
      3. 运行录屏。影刀在设置中可以打开运行录屏的功能,会在后面的每次触发运行的时候自动录制屏幕,这样出现特殊报错情况的时候可以及时查看录屏以直观地观察到当时的状态。

总结

    • 代码整理优化在让我们的程序变得优雅的同时,也方便多人之间开发协作,应用传递等,可以减少很多隐形的时间消耗。
    • 效率优化让我们的程序调高运行效率,用更少的时间得到更大的价值。
    • 运行稳定优化让我们的程序变得更加健壮,能够应对各种突发情况。

       感谢大家的观看,点赞、收藏,送出你手里的两颗硬币抱大腿

  • 【拓展资料】

如何写出易懂、易调试、易修改的应用----by华南组


收藏35
全部评论1
最新
发布评论
评论