一种测试ReactNative应用的UI自动化测试方法技术

技术编号:33934516 阅读:19 留言:0更新日期:2022-06-25 22:57
本发明专利技术涉及数据测试技术领域,公开了一种测试React Native应用的UI自动化测试方法,该方法包括:设置数据库中的测试数据和测试框架的字段均包括执行操作,基于执行操作字段将测试数据和测试框架进行关联标记;如数据库中包含相关的测试用例,则直接读取测试数据;如数据库中不包含相关的测试用例,利用Appium生成测试数据,将生成的测试数据存储到数据库,读取并解析测试数据;将测试数据通过数据库映射为detox测试框架可执行的测试任务;执行测试过程,并将执行结果存入数据库。本发明专利技术提升了React Native为核心技术栈项目的UI自动化测试时的执行效率。试时的执行效率。试时的执行效率。

【技术实现步骤摘要】
一种测试React Native应用的UI自动化测试方法


[0001]本专利技术涉及数据测试
,特别是一种测试React Native应用的UI自动化测试方法。

技术介绍

[0002]前在移动客户端iOS系统和Android系统的UI自动化测试领域,存在针对基于以OC语言和JAVA语言开发为主框架的纯原生APP,或带有H5、RN、Flutter的混合开发架构APP的UI自动化测试方案,但对于以React Native技术栈为主框架构建的APP如何实现UI自动化测试,目前尚未有相关研究。
[0003]目前对于移动客户端APP的UI自动化测试都是基于Appium自动化测试框架。Appium是基于WebDriver协议添加了对移动设备自动化API扩展而成的,WebDriver是基于http协议的,第一连接会建立一个session会话,并通过post发送一个JSON告知服务端相关测试信息,JSON 是一种存储和交换数据的语法。整个测试过程是一个黑盒测试,并且无法直接针对利用RN开发的APP生成可执行的测试脚本。
[0004]目前以React Native技术栈为主框架构建的APP的UI自动化测试研究处于空白阶段。基于Appium自动化测试框架的UI自动化测试方案,对以React Native为核心技术栈的APP不便于集成到项目中,不能进行灰盒测试。基于Appium测试框架的UI自动化测试方案,相对以detox测试框架的UI自动化测试方案,在测试React Native为核心技术栈的APP时效率更高。r/>
技术实现思路

[0005]本专利技术要解决的技术问题是:为了解决上述问题,本专利技术提供了一种测试React Native应用的UI自动化测试方法。
[0006]为实现上述目的,本专利技术采用的技术方案如下:一种测试React Native应用的UI自动化测试方法,包括:步骤S1,设置数据库中的测试数据和测试框架的字段均包括执行操作,基于执行操作字段将测试数据和测试框架进行关联标记;步骤S2,如数据库中包含相关的测试用例,则直接读取测试数据;如数据库中不包含相关的测试用例,利用Appium生成测试数据,将生成的测试数据存储到数据库,读取并解析测试数据;步骤S3,将测试数据通过数据库映射为detox测试框架可执行的测试任务;步骤S4,执行测试过程,并将执行结果存入数据库。
[0007]进一步的,所述步骤S1中,所述测试数据包含以下字段:元素标识、执行操作、文本内容。
[0008]进一步的,所述步骤S1中,所述测试框架封装的方法集包含以下字段:执行操作、执行方法、执行结果。
[0009]进一步的,所述步骤S2中,如果数据库中不包含相关的测试用例,对设备进行屏幕操作录制,记录操作过程中的元素和输入的测试数据,获取元素标识及测试数据同时写入数据库。
[0010]进一步的,针对IOS设备,利用WebDriver部署到目标设备上,启动Appium客户端开启Http服务,并通过Appium客户端进行测试操作,执行XCUITest驱动测试,记录操作过程中的元素和输入的测试数据,获取操作的元素标识及测试数据同时写入数据库。
[0011]进一步的,针对Android设备,利用UIAutomator部署到目标设备上,启动Appium客户端开启Http服务,并通过Appium客户端进行测试操作,执行UIAutomator2驱动测试,记录操作过程中的元素和输入的测试数据,获取操作的元素标识及测试数据同时写入数据库。
[0012]进一步的,Appium核心数据结构字段包括元素、标识、元素类型、路径、文本、事件标识;提取所述标识和路径字段中相关信息作为测试数据的元素标识字段;提取所述事件标识字段中相关信息作为测试数据的执行操作字段;提取所述文本字段中相关信息作为测试数据的文本内容,基于提取的元素标识、执行操作、文本内容完成测试数据的加工。
[0013]进一步的,所述步骤S3中,detox的原始API包括元素定位、元素事件、元素判断,detox测试框架的执行方法通过原始API完成对测试用例的执行。
[0014]与现有技术相比,本专利技术具有以下有益效果:本专利技术的技术方案采用detox测试框架,detox测试框架便于研发集成到项目中,是一种测试React Native技术栈的灰盒测试方案;本专利技术的技术方案,相对于其他自动化测试框架,提升了React Native为核心技术栈项目的UI自动化测试时的执行效率;本专利技术的技术方案通过操作录屏的方式生成测试用例,极大节省了写用例脚本的时间成本且不容易出错。
附图说明
[0015]图1为本专利技术测试React Native应用的UI自动化测试方法的流程示意图。
[0016]图2为执行操作作为测试数据与测试框架进行关联标识的实体关系图。
具体实施方式
[0017]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图,对本专利技术进一步详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0018]Detox是移动端 APP 自动化测试框架。
[0019]Appium 是一个开源、跨平台的自动化测试工具。
[0020]React Native(简称RN)是跨平台移动应用开发框架。
[0021]WebDriver是一种用于Web应用程序的自动测试工具。
[0022]XCUITest是Apple在2015年推出的用户界面测试框。
[0023]Http是超文本传输协议。
[0024]UIAutomator和UIAutomator2是一个自动化测试开源工具。
[0025]API指应用程序编程接口。
[0026]如图1所示,一种测试React Native应用的UI自动化测试方法,包括:步骤S1,数据库设置阶段,设置数据库中的测试数据和测试框架的字段均包括执行操作,基于执行操作字段将测试数据和测试框架进行关联标记;步骤S2,开始测试,如数据库中包含相关的测试用例,则直接读取测试数据;如数据库中不包含相关的测试用例,利用Appium生成测试数据,将生成的测试数据存储到数据库,读取并解析测试数据;步骤S3,将测试数据通过数据库映射为detox测试框架可执行的测试任务;步骤S4,执行测试过程,并将执行结果存入数据库。
[0027]在一实施例中,数据库设计中,测试数据由录制和回放阶段自动生成,包含字段如下表1。
[0028]表1在一些实施例中,detox提供的API比较零散,比如要执行点击某个按钮,如果不封装一下,那么需要写两行代码,第一行代码找到元素,第二行代码执行点击操作。如果封装一下那么就执行点击按钮这种函数就是一行代码。
[0029]在数据库设计中的测试框架:基于detox封装的方法集,包含字段如下表2。<本文档来自技高网...

【技术保护点】

【技术特征摘要】
1. 一种测试React Native应用的UI自动化测试方法,其特征在于,包括:步骤S1,设置数据库中的测试数据和测试框架的字段均包括执行操作,基于执行操作字段将测试数据和测试框架进行关联标记;步骤S2,如数据库中包含相关的测试用例,则直接读取测试数据;如数据库中不包含相关的测试用例,利用Appium生成测试数据,将生成的测试数据存储到数据库,读取并解析测试数据;步骤S3,将测试数据通过数据库映射为detox测试框架可执行的测试任务;步骤S4,执行测试过程,并将执行结果存入数据库。2.如权利要求1所述的测试React Native应用的UI自动化测试方法,其特征在于,所述步骤S1中,所述测试数据包含以下字段:元素标识、执行操作、文本内容。3.如权利要求1所述的测试React Native应用的UI自动化测试方法,其特征在于,所述步骤S1中,所述测试框架封装的方法集包含以下字段:执行操作、执行方法、执行结果。4.如权利要求1所述的测试React Native应用的UI自动化测试方法,其特征在于,所述步骤S2中,如果数据库中不包含相关的测试用例,对设备进行屏幕操作录制,记录操作过程中的元素和输入的测试数据,获取元素标识及测试数据同时写入数据库。5.如权利要求4所述的测试React Native应用的UI自动化测试方法,其特征在于,针对IOS设备,利用WebDriver部...

【专利技术属性】
技术研发人员:李泱马海贺余昆邬育靖谭政
申请(专利权)人:中建电子商务有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1