本发明涉及移动端测试技术领域,尤其涉及一种flutter测试辅助方法及装置。
背景技术:
flutter是google推出的跨平台ui框架,可以实现一套代码,多端复用。flutter技术的引入,使得原来需要为android、ios编写两套代码,现在仅需编写一套代码,提高了研发效率。
虽然flutter技术能够提高研发效率,但仍需对不同平台的flutter页面进行测试。现有技术中采用flutter-driver或appium-flutter-driver进行测试,其中flutter-driver支持集成测试,但是需要在业务代码中手动设置视图元素id,对业务代码有入侵,而且flutter-driver仅支持dart语言编写测试脚本,不支持python语言编写测试脚本。appium-flutter-driver是对flutter-driver的封装优化,虽然支持python语言编写测试脚本,但也需要在业务代码中手动设置视图元素id。
技术实现要素:
本发明提供一种flutter测试辅助方法及装置,用以解决现有技术中手动设置视图元素id影响业务逻辑的缺陷。
本发明提供一种flutter测试辅助方法,包括:
确定视图元素在flutterui页面的位置信息;
根据所述位置信息生成与所述视图元素一一对应的标识id;其中,所述id用于辅助对所述视图元素进行flutter自动化测试。
根据本发明提供的一种flutter测试辅助方法,根据所述位置信息生成与所述视图元素一一对应的标识id,包括:
根据所述位置信息,确定所述位置信息生成与所述视图元素一一对应的标识id的映射规则;
根据所述映射规则,生成与所述视图元素一一对应的标识id;
其中,所述映射规则包括:
根据所述位置信息,判断所述视图元素是否为flutterui页面的可操作元素,若是,则将所述位置信息映射为多个控件名拼接而成的第一path路径,并根据所述第一path路径生成对应的标识id;
若否,则判断所述视图元素是否为集合类控件的子元素,若是,则将所述集合类控件中的多个控件名拼接成第二path路径,并将所述视图元素在所述集合类控件中的排序标识与所述第二path路径拼接,生成对应的标识id。根据本发明提供的一种flutter测试辅助方法,还包括:
获取任一视图元素的id;
根据所述任一视图元素的id对所述任一视图元素进行flutter自动化测试。
根据本发明提供的一种flutter测试辅助方法,获取任一视图元素的id,包括:
在接收到获取任一视图元素的id任务后,将所述视图元素在flutterui页面的位置信息通过inspectorservice发送至vmservice,以使所述vmservice确定所述映射规则;
根据所述映射规则,生成所述视图元素的id;
其中,所述inspectorservice用于拦截所述vmservice的监听端口,并在所述监听端口中添加用于确定所述映射规则的功能。
根据本发明提供的一种flutter测试辅助方法,在获取任一元素的id之后,还包括:在所述flutterui页面可视化展示所述id。
根据本发明提供的一种flutter测试辅助方法,根据所述任一视图元素的id对所述任一视图元素进行flutter自动化测试,包括:
将所述任一视图元素的id和针对所述任一视图元素的操作指令发送给服务器;
接收所述服务器根据所述任一视图元素的id以及第一映射关系确定的与所述任一视图元素的id对应的视图元素;其中,所述第一映射关系中存储有各id与各视图元素的对应关系;
对与所述任一视图元素的id对应的视图元素进行flutter自动化测试。
本发明还提供一种flutter测试辅助装置,包括:
获取单元,用于确定视图元素在flutterui页面的位置信息;
辅助单元,用于根据所述位置信息生成与所述视图元素一一对应的标识id;其中,所述id用于辅助对所述视图元素进行flutter自动化测试。
根据本发明提供的一种flutter测试辅助装置,所述辅助单元,具体用于:
根据所述位置信息,确定所述位置信息生成与所述视图元素一一对应的标识id的映射规则;
根据所述映射规则,生成与所述视图元素一一对应的标识id;
其中,所述映射规则包括:
根据所述位置信息,判断所述视图元素是否为flutterui页面的可操作元素,若是,则将所述位置信息映射为多个控件名拼接而成的第一path路径,并根据所述第一path路径生成对应的标识id;
若否,则判断所述视图元素是否为集合类控件的子元素,若是,则将所述集合类控件中的多个控件名拼接成第二path路径,并将所述视图元素在所述集合类控件中的排序标识与所述第二path路径拼接,生成对应的标识id。
根据本发明提供的一种flutter测试辅助装置,还包括测试单元,用于:
获取任一视图元素的id;
根据所述任一视图元素的id对所述任一视图元素进行flutter自动化测试。
根据本发明提供的一种flutter测试辅助装置,所述测试单元用于获取任一视图元素的id,包括:
在接收到获取任一视图元素的id任务后,将所述视图元素在flutterui页面的位置信息通过inspectorservice发送至vmservice,以使所述vmservice确定所述映射规则;
根据所述映射规则,生成所述视图元素的id;
其中,所述inspectorservice用于拦截所述vmservice的监听端口,并在所述监听端口中添加用于确定所述映射规则的功能。
根据本发明提供的一种flutter测试辅助装置,还包括展示单元,用于在获取任一元素的id之后,在所述flutterui页面可视化展示所述id。
根据本发明提供的一种flutter测试辅助装置,所述测试单元用于根据任一视图元素的id对任一视图元素进行flutter自动化测试,包括:
将所述任一视图元素的id和针对所述任一视图元素的操作指令发送给服务器;
接收所述服务器根据所述任一视图元素的id以及第一映射关系确定的与所述任一视图元素的id对应的视图元素;其中,所述第一映射关系中存储有各id与各视图元素的对应关系;
对与所述任一视图元素的id对应的视图元素进行flutter自动化测试。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述flutter测试辅助方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述flutter测试辅助方法的步骤。
本发明提供的flutter测试辅助方法及装置,通过确定视图元素在flutterui页面的位置信息,并根据位置信息生成与视图元素一一对应的标识id。由此可见,本发明通过根据视图元素在flutterui页面的位置信息,自动生成对应的标识id,用于辅助对视图元素进行flutter自动化测试,避免传统方法中需要在业务代码中手动设置视图元素id,造成业务代码入侵影响业务逻辑的问题,并且自动生成id相较于手动设置id,提高了获取id的效率,进而能够快速实现flutter自动化测试。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的flutter测试辅助方法的流程示意图;
图2是本发明提供的视图元素与对应id的映射流程示意图;
图3是本发明提供的视图元素与对应id的映射代码示意图;
图4是本发明提供的获取视图元素id的流程示意图;
图5是本发明提供的驱动视图元素的流程示意图;
图6是本发明提供的flutter测试辅助装置的结构示意图;
图7是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
flutter是google推出的跨平台ui框架,可以实现一套代码,多端复用。flutter技术的引入,使得原来需要为android、ios编写两套代码,现在仅需编写一套代码,提高了研发效率。虽然flutter技术能够提高研发效率,但仍需对不同平台的flutter页面进行测试。现有技术中采用flutter-driver或appium-flutter-driver进行测试,其中flutter-driver支持集成测试,但是需要在业务代码中手动设置视图元素id,对业务代码有入侵,而且flutter-driver仅支持dart语言编写测试脚本,不支持python语言编写测试脚本。appium-flutter-driver是对flutter-driver的封装优化,虽然支持python语言编写测试脚本,但也需要在业务代码中手动设置视图元素id。
对此,本发明提供一种flutter测试辅助方法。图1是本发明提供的flutter测试辅助方法的流程示意图,如图1所示,该方法包括:
步骤110、确定视图元素在flutterui页面的位置信息;
步骤120、根据位置信息生成与视图元素一一对应的标识id;其中,id用于辅助对视图元素进行flutter自动化测试。
在本步骤中,构成flutterui页面的视图元素是由一些基础组件构成的,例如容器、行、列、绝对定位布局、文本、图片和图标等,基于这些基础组件实现flutterui页面中的各项功能。在开发者完成flutterui页面后,需要对flutterui页面中的各视图元素进行测试,以验证flutterui页面中各组件的功能是否正常,例如测试页面是否能够正常滚动、是否能够实现界面跳转等。在对flutterui页面进行测试时,需要获取flutterui页面视图元素对应的id,以辅助对视图元素进行flutter自动化测试。id是可以标示唯一视图元素的值,根据id可以准确定位到对应的视图元素,自动化脚本可以通过id映射到对应的视图元素,并对该视图元素进行自动化测试。
传统方法中针对各视图元素需要在业务代码中分别手动设置视图元素id,不仅对业务代码存在入侵影响业务逻辑,而且效率较低。本实施例可以通过点击flutterui页面的视图元素,获取视图元素在flutterui页面的位置信息,根据位置信息自动生成与视图元素一一对应的标识id,用于辅助对视图元素进行flutter自动化测试,不仅提高了获取flutterui页面视图元素id的效率,节约测试人力成本,而且避免传统方法中手动设置视图元素id的失误导致影响flutterui页面测试的问题。
本发明提供的flutter测试辅助方法,通过确定视图元素在flutterui页面的位置信息,并根据位置信息生成与视图元素一一对应的标识id。由此可见,本发明通过根据视图元素在flutterui页面的位置信息,自动生成对应的标识id,用于辅助对视图元素进行flutter自动化测试,避免传统方法中需要在业务代码中手动设置视图元素id,造成业务代码入侵影响业务逻辑的问题,并且自动生成id相较于手动设置id,提高了获取id的效率,进而能够快速实现flutter自动化测试。
基于上述实施例,根据位置信息生成与视图元素一一对应的标识id,包括:
根据位置信息,确定位置信息生成与视图元素一一对应的标识id的映射规则;
根据映射规则,生成与视图元素一一对应的标识id;
其中,映射规则包括:
根据位置信息,判断视图元素是否为flutterui页面的可操作元素,若是,则将位置信息映射为多个控件名拼接而成的第一path路径,并根据第一path路径生成对应的标识id;
若否,则判断视图元素是否为集合类控件的子元素,若是,则将集合类控件中的多个控件名拼接成第二path路径,并将视图元素在集合类控件中的排序标识与第二path路径拼接,生成对应的标识id。
在本实施例中,需要说明的是,在点击flutterui页面选取视图元素时,可能该视图元素为可操作的元素(即根元素,最顶层结构的元素),也有可能该视图元素为集合类控件的子元素。为了能够准确且有效根据位置信息生成对应的id,本实施例在确定位置信息后,会根据映射规则生成对应的id。
其中,具体映射规则为:根据位置信息,若判断视图元素为flutterui页面的可操作元素,则将位置信息映射为多个控件名拼接而成的第一path路径,并根据第一path路径生成对应的标识id,可以理解的是,某一视图元素可以包括一个或多个控件,例如表格视图元素可以包括文本框、标签、窗体等多个控件,根据多个控件对应的控件名拼接生成对应的标识id,从而可以根据id获取对应的视图元素进行自动化测试。需要说明的是,对于第一path路径,其生成的顺序是从子元素遍历到页面的根元素。若判断视图元素不为flutterui页面的可操作的元素,则表明该视图元素可能是集合类控件的子元素,为了能够进一步准确生成对应的id,本实施例在判断视图元素不为flutterui页面可操作的元素之后,会进一步判断该视图元素是否为集合类控件的子元素,若是,则将集合类控件中的多个控件名按照第一path路径的生成方法拼接成第二path路径,并将视图元素在集合类控件中的排序标识与第二path路径拼接,生成对应的标识id。其中,排序标识用于区分集合类控件中不同子元素的位置。例如,本实施例可以对集合类控件中各子元素进行排序设置下标位置以区分不同的子元素位置,并在第二path路径中额外需要拼接对应子元素的下标位置作为其最终标识id。
如图2和图3所示,通过id_generator将flutter页面中的视图元素映射成id的主要步骤为:①通过当前element调用visitancestorelement函数递归访问父element获取element集合(elementlist);②在element映射成widgetname的过程中将一些不会影响创建路径的element舍弃;③将widgetname拼接成对应的id。由此可见,本发明提供的flutter测试辅助方法,根据视图元素的位置信息,结合映射规则生成对应的id,能够根据视图元素的位置信息判断视图元素的类型,并生成一一对应的标识id,提高了生成id的准确率。
基于上述实施例,还包括:
获取任一视图元素的id;
根据任一视图元素的id对任一视图元素进行flutter自动化测试。
在本实施例中,根据上述方法获取任一视图元素的id之后,根据视图元素的id可以定位到对应的视图元素,从而对该视图元素进行flutter自动化测试。
由此可见,本发明提供的flutter测试辅助方法,根据任一视图元素的id对任一视图元素进行flutter自动化测试,省去了测试人员手动设置视图元素id的人力成本,提高了flutter自动化测试的效率。
基于上述实施例,获取任一视图元素的id,包括:
在接收到获取任一视图元素的id任务后,将视图元素在flutterui页面的位置信息通过inspectorservice发送至vmservice,以使vmservice确定映射规则;
根据映射规则,生成视图元素的id;
其中,inspectorservice用于拦截vmservice的监听端口,并在监听端口中添加用于确定映射规则的功能。
在本实施例中,vmservice和inspectorservice主要用于帮助测试人员检查flutterui页面结构,从而在视图布局出现问题时快速定位原因,并且vmservice和inspectorservice能够稳定进行页面结构分析和视图元素定位,从而可以快速获取对应的视图元素id。本实施例在接收到获取任一视图元素的id任务后,可以通过点击选中该视图元素,即可将视图元素在flutterui页面的位置信息通过inspectorservice发送至vmservice,由于inspectorservice可以拦截vmservice的监听端口,并在监听端口中添加用于确定映射规则的功能,从而使得vmservice能够在系统中具备根据位置信息确定映射规则的能力,并在确定映射规则之后生成视图元素的id。
如图4所示,vmservice在flutter初始化时开启,同时通过脚本启动inspectorservice去连接vmservice,成功连接vmservice之后,发送“show”消息使得flutterui页面进入selectedmode模式,即可选中当前视图元素。在selectedmode模式下,点击视图元素会触发vmservice的widgetlnspectorservice类中的_getselectedwidget函数,该函数将视图元素的测试信息返回给inspectorservice。本实施例可以采用aspectd的hook函数,在其返回的json数据中增加了视图元素的id字段,从而实现视图元素id的监听获取。其中,inspectorservice作为桥接页面分析器和vmservice的中间层,负责连接vmservice,将vmservice返回的id转发给页面分析器展示;vmservice提供flutter运行及页面渲染所需要的引擎服务;id_generator用于将flutterui页面中的视图元素映射成一个字符串id。
由此可见,本发明提供的flutter测试辅助方法,通过inspectorservice拦截vmservice的监听端口,并在监听端口中添加用于确定映射规则的功能,进而通过inspectorservice与vmservice通信自动获取视图元素的id,以对flutterui页面辅助测试。
基于上述实施例,在获取任一元素的id之后,还包括:在flutterui页面可视化展示id。
在本实施例中,需要说明的是,为了使测试人员能够直观获取视图元素的id,不仅可以提供给测试人员编写用例,而且可以避免无法直观获取视图元素id造成编写失误的问题,本实施例在获取任一元素的id之后,还可以实现在flutterui页面可视化展示id,即在点击flutterui页面上的任一视图元素时,就可以自动可视化展示id。
如图4所示,在inspectorservice获取到视图元素id之后,页面分析器通过websocket和inspectorservice建立连接就能将视图元素id展示出来,从而实现分析视图页面元素并获取对应元素id的过程。其中,页面分析器可以采用如weditor的分析页面元素的工具或者命令行,负责启动服务展示id。
本发明提供的flutter测试辅助方法,在获取任一元素的id之后,在flutterui页面可视化展示id,使得测试人员能够直观获取视图元素id,进而提高了测试人员编写效率且避免编写失误。
基于上述实施例,根据任一视图元素的id对任一视图元素进行flutter自动化测试,包括:
将任一视图元素的id和针对任一视图元素的操作指令发送给服务器;
接收服务器根据任一视图元素的id以及第一映射关系确定的与任一视图元素的id对应的视图元素;其中,第一映射关系中存储有各id与各视图元素的对应关系;
对与任一视图元素的id对应的视图元素进行flutter自动化测试。
在本实施例中,通过点击flutterui页面中的视图元素,即可获取对应的视图元素id,并将视图元素的操作指令(如驱动视图元素进行测试)发送给服务器,服务器根据第一映射关系确定与id对应的视图元素,从而对该视图元素进行flutter自动化测试。
如图5所示,futclient在连接futservice之后,futclient将需要操作的视图元素对应id和需要执行的操作发送给futservice,futservice通过id找到对应的视图元素element,执行对应的操作并将操作结果返回给futclient完成了一次对视图操作的闭环。其中,futclient用于通过websocket调用futservice的服务,完成驱动视图并向上提供可供测试人员编写自动化脚本的api;futservice运行在flutterapp上,通过websocket连接futservice可以获取对应element的相关信息或对element进行断言、输入等操作;id_generator用于将flutterui页面中的id映射到对应的视图元素element上。由此可见,本实施例通过futclient和futservice通信,使得flutterui页面自动执行模拟用户点击、滑动、长按、输入等操作。同时futclient可以使用python脚本开发,降低了测试人员的学习成本,并且futclient可以在任意原生自动化框架方案中快速集成,实现轻量化灵活接入。
下面对本发明提供的flutter测试辅助装置进行描述,下文描述的flutter测试辅助装置与上文描述的flutter测试辅助方法可相互对应参照。
基于上述实施例,本发明提供一种flutter测试辅助装置,如图6所示,该装置包括:
获取单元610,用于确定视图元素在flutterui页面的位置信息;
辅助单元620,用于根据位置信息生成与视图元素一一对应的标识id;其中,id用于辅助对视图元素进行flutter自动化测试。
本发明提供的flutter测试辅助装置,通过确定视图元素在flutterui页面的位置信息,并根据位置信息生成与视图元素一一对应的标识id。由此可见,本发明通过根据视图元素在flutterui页面的位置信息,自动生成对应的标识id,用于辅助对视图元素进行flutter自动化测试,避免传统方法中需要在业务代码中手动设置视图元素id,造成业务代码入侵影响业务逻辑的问题,并且自动生成id相较于手动设置id,提高了获取id的效率,进而能够快速实现flutter自动化测试。
基于上述实施例,辅助单元620,具体用于:
根据位置信息,确定位置信息生成与视图元素一一对应的标识id的映射规则;
根据映射规则,生成与视图元素一一对应的标识id;
其中,映射规则包括:
根据位置信息,判断视图元素是否为flutterui页面的可操作元素,若是,则将位置信息映射为多个控件名拼接而成的第一path路径,并根据第一path路径生成对应的标识id;
若否,则判断视图元素是否为集合类控件的子元素,若是,则将集合类控件中的多个控件名拼接成第二path路径,并将视图元素在集合类控件中的排序标识与第二path路径拼接,生成对应的标识id。
基于上述实施例,该装置还包括测试单元,用于:
获取任一视图元素的id;
根据任一视图元素的id对任一视图元素进行flutter自动化测试。
基于上述实施例,测试单元用于获取任一视图元素的id,包括:
在接收到获取任一视图元素的id任务后,将视图元素在flutterui页面的位置信息通过inspectorservice发送至vmservice,以使vmservice确定映射规则;
根据映射规则,生成视图元素的id;
其中,inspectservice用于拦截vmservice的监听端口,并在监听端口中添加用于确定映射规则的功能。
基于上述实施例,该装置还包括展示单元,用于在获取任一元素的id之后,在flutterui页面可视化展示id。
基于上述实施例,测试单元用于根据任一视图元素的id对任一视图元素进行flutter自动化测试,包括:
将任一视图元素的id和针对任一视图元素的操作指令发送给服务器;
接收服务器根据任一视图元素的id以及第一映射关系确定的与任一视图元素的id对应的视图元素;其中,第一映射关系中存储有各id与各视图元素的对应关系;
对与任一视图元素的id对应的视图元素进行flutter自动化测试。
图7是本发明提供的电子设备的结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(communicationsinterface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行flutter测试辅助方法,该方法包括:确定视图元素在flutterui页面的位置信息;根据所述位置信息生成与所述视图元素一一对应的标识id;其中,所述id用于辅助对所述视图元素进行flutter自动化测试。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的flutter测试辅助方法,该方法包括:确定视图元素在flutterui页面的位置信息;根据所述位置信息生成与所述视图元素一一对应的标识id;其中,所述id用于辅助对所述视图元素进行flutter自动化测试。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的flutter测试辅助方法,该方法包括:确定视图元素在flutterui页面的位置信息;根据所述位置信息生成与所述视图元素一一对应的标识id;其中,所述id用于辅助对所述视图元素进行flutter自动化测试。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
1.一种flutter测试辅助方法,其特征在于,包括:
确定视图元素在flutterui页面的位置信息;
根据所述位置信息生成与所述视图元素一一对应的标识id;其中,所述id用于辅助对所述视图元素进行flutter自动化测试。
2.根据权利要求1所述flutter测试辅助方法,其特征在于,根据所述位置信息生成与所述视图元素一一对应的标识id,包括:
根据所述位置信息,确定所述位置信息生成与所述视图元素一一对应的标识id的映射规则;
根据所述映射规则,生成与所述视图元素一一对应的标识id;
其中,所述映射规则包括:
根据所述位置信息,判断所述视图元素是否为flutterui页面的可操作元素,若是,则将所述位置信息映射为多个控件名拼接而成的第一path路径,并根据所述第一path路径生成对应的标识id;
若否,则判断所述视图元素是否为集合类控件的子元素,若是,则将所述集合类控件中的多个控件名拼接成第二path路径,并将所述视图元素在所述集合类控件中的排序标识与所述第二path路径拼接,生成对应的标识id。
3.根据权利要求2所述flutter测试辅助方法,其特征在于,还包括:
获取任一视图元素的id;
根据所述任一视图元素的id对所述任一视图元素进行flutter自动化测试。
4.根据权利要求3所述flutter测试辅助方法,其特征在于,获取任一视图元素的id,包括:
在接收到获取任一视图元素的id任务后,将所述视图元素在flutterui页面的位置信息通过inspectorservice发送至vmservice,以使所述vmservice确定所述映射规则;
根据所述映射规则,生成所述视图元素的id;
其中,所述inspectorservice用于拦截所述vmservice的监听端口,并在所述监听端口中添加用于确定所述映射规则的功能。
5.根据权利要求4所述flutter测试辅助方法,其特征在于,在获取任一元素的id之后,还包括:在所述flutterui页面可视化展示所述id。
6.根据权利要求3所述flutter测试辅助方法,其特征在于,根据所述任一视图元素的id对所述任一视图元素进行flutter自动化测试,包括:
将所述任一视图元素的id和针对所述任一视图元素的操作指令发送给服务器;
接收所述服务器根据所述任一视图元素的id以及第一映射关系确定的与所述任一视图元素的id对应的视图元素;其中,所述第一映射关系中存储有各id与各视图元素的对应关系;
对与所述任一视图元素的id对应的视图元素进行flutter自动化测试。
7.一种flutter测试辅助装置,其特征在于,包括:
获取单元,用于确定视图元素在flutterui页面的位置信息;
辅助单元,用于根据所述位置信息生成与所述视图元素一一对应的标识id;其中,所述id用于辅助对所述视图元素进行flutter自动化测试。
8.根据权利要求7所述flutter测试辅助装置,其特征在于,所述辅助单元,具体用于:
根据所述位置信息,确定所述位置信息生成与所述视图元素一一对应的标识id的映射规则;
根据所述映射规则,生成与所述视图元素一一对应的标识id;
其中,所述映射规则包括:
根据所述位置信息,判断所述视图元素是否为flutterui页面的可操作元素,若是,则将所述位置信息映射为多个控件名拼接而成的第一path路径,并根据所述第一path路径生成对应的标识id;
若否,则判断所述视图元素是否为集合类控件的子元素,若是,则将所述集合类控件中的多个控件名拼接成第二path路径,并将所述视图元素在所述集合类控件中的排序标识与所述第二path路径拼接,生成对应的标识id。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述flutter测试辅助方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述flutter测试辅助方法的步骤。
技术总结