【实测】UI自动化用AI断言页面源码怎么搞?(中)
实测系列文章内容均为学员或粉丝实际工作中遇到的技术难点,这些问题各位工作中估计都用的到,先收藏一波等用的时候直接找到!
承接上篇,我们要继续开发俩大功能函数:begin_assert和begin_update。等完成了俩个函数,我们后续会做一个便于交互的专门交互函数,用来接受用户的指令来选择性的调用功能函数。由这个交互函数来判断什么时候保存 什么时候断言。
这个函数是用来保存或更新标准答案的。媒介我们简单一点,就本地文件吧。
该文件夹用来存放保存的文件。文件名称则为等能代表页面身份的标记来创造。创建的时候注意,没有的要创建,有的要更新。
如上图, 综上考虑,为了增加可读性,直接自行命名该页面名称吧。
-
根据传入要断言的页面名称去拿到标准答案,拿不到则提示。
-
拿到后开始进行比对,整理出所有不同的tag和不同的内容。
-
交给AI模块,让AI去做最终判断,是否还是同一个页面。
这里涉及到一个问题,就是页面有时候会有些许变化,但是正常的需求设计变动,不算bug。但有的bug呢,则是个别的重要元素,需要特别针对去判断。这里我有俩个设计。
一是调用AI模块的时候我们可能需要加入针对性的元素描述,让AI判断是否算是bug,给我们出具报告,由人最终决断。
二是在调用AI模块之前,这个begin_assert函数的时候,我们就针对性的对关键元素进行硬断言,不一样直接报。
俩个设计都有优缺点,各位自行决断。教程采用第一种,全部交给AI判断,我们只需要告诉AI,页面中的按钮,重要文案数据,不能出现明显问题,改动过大必须上报。这个等之后一篇文章再讨论吧
结果展示如下,上面是实时获取页面最新的,下面是读取的标准答案,目前没有改动,所以一模一样:
-
顺序变化 ,在整个页面的位置是否发生了变化,默认1。
-
顺序变化需要去找,找到继续比对,找不到则判断不存在了。默认1,(这其中可能找到一堆差不多的,需要逐个比对来判断是否只是顺序变化,还是就是没了).
-
text不同,是否发生了变化,默认1。这个其实页面但凡有一点点变化,是一定不同的。所以要轻提示,因为子元素的问题一定会体现在它自身上,父元素也一直报text不同的错,那就很显然重复了。但是又不能不记录,所以轻微记录一下即可,为了方便,我们要规避掉\n和空格的影响
-
其实,这个函数的算法比较麻烦,我咨询过AI,结果AI给的实在是全是bug,改了十几版依然有点听不懂人话,我怀疑互联网上没人写过这个需求的具体算法,导致AI学不到只能主动创造生成,但是我的需求又比较繁琐,总是被忽略细节。于是我还是要自己手写了,幸好全民依赖AI的情况持续不长,人脑子还能用。不然这些细节繁琐的需求,AI改来改去还是问题不断。虽然现在很多公司领导都要求程序员必须进行最大比例的使用AI写代码,但是基本都是平时只写简单增删改查的功能,一旦上升到全新算法,必须还是要公司的算法工程师出马才万无一失。本文的算法算上及其简单的了,AI效果依然不够,所以大家不要担心被AI彻底取代,也不要幻想自己什么代码算法都不懂,用AI就能干了所有事。
5. 忽略掉html/head/body/meta/div 等性价比极低的外层标签,只找用户关注的标签元素:
好,我们接下来要开发的断言具体功能,需要借助不同的html。
接下来,我们把第二个按钮上面添加一个别的按钮,就会变成第二个按钮的顺序变化了。
我们实现了第一种情况,就是第二个按钮虽然顺序不对,但是找到了!
上面的res是一个结果统计,index变成0 意思是顺序不对。existence代表是否还存在,正常肯定都是1 1 , 顺序不对但找到了0 1 , 顺序不对没找到 0 0 。后续还会有很多很多需要判断的,要么怎么说这个算法难不难,但是复杂,AI总是前后矛盾,确实太长的网上没有过的算法搞不定。咱们自己一点点写把。等本文发表后,估计AI就能爬走学会了。
篇幅关系,今天到此,明天继续。上周我出门旅游了,没带电脑,抱歉。新课程开的有点晚,老学员们不要着急哈~ 最近几天就公开招生信息和大纲。
欢迎进测试粉丝聊天群扫码:本实测功能为学员需要的,所以先更,更完后会开一个全新的AI学习系列,包含所有最新的技术,我土话普及的文章哈。