掌桥专利:专业的专利平台
掌桥专利
首页

一种APP产品的模块更新方法、装置及电子设备

文献发布时间:2023-06-19 19:37:02


一种APP产品的模块更新方法、装置及电子设备

技术领域

本发明涉及数据处理技术领域,并且更具体地,涉及一种APP产品的模块更新方法、装置及电子设备。

背景技术

APP产品通常具有多个功能单元或者模块,当需要针对某个或者某些单元或者模块进行更新后,会影响其他功能单元或者模块。因此,系统程序每次功能模块版本迭代更新后,都需要人工检查所有的系统模块,测试资源均需要在旧功能模块上进行反复检查是否存在漏洞或者问题。

现有技术提供了一种APP的UI截图测试方法,例如中国专利CN108549608A,对于每一个测试子项,分别控制被测终端进行一次或者多次UI截图,并将UI截图发送至测试主机;测试主机对接收到的UI截图进行缓存,并分别对每一个测试子项的UI截图进行下述处理:将UI截图之间进行比对,将相似度高于预设值的UI截图剔除一部分,并将剩余的UI截图进行保存以用于APP的测试。如此能够有效减少UI截图的处理数量,降低测试人员的工作量/降低测试主机需要处理的数据,提升测试效率。

但是,这种UI截图的测试方法,仍需要测试人员查看UI截图。并且,APP产品的功能单元或者模块往往很多,每个APP产品每个月迭代更疼多次,会导致测试资源每次消耗很多的时间和成本在重复的工作上面,同时人工查看UI截图的工作每一遍的流程都无法做到完全一致,大大地浪费了人力资源和时间成本以及无法保证每一遍检查的准确性。

因此,现有的对APP产品的功能单元或者模块进行测试的方法存在工作量巨大,无法保障每次的测试步骤的一致性等问题。

发明内容

针对现有技术的不足,本发明提供一种APP产品的模块更新方法、装置及电子设备。

根据本发明的一个方面,提供了一种APP产品的模块更新方法,包括:

引用SpecFlow单元测试框架,并在SpecFlow单元测试框架中引入Selenuim方法包;

基于Selenuim方法包封装各类测试操作和UI自动化测试提供的Given部分的通用操作流程;

基于封装的各类测试操作和各类通用操作流程,生成通用测试模板和测试用例;

当需要对APP产品的目标模块进行更新时,根据通用测试模板和测试用例编写Feature自动化脚本;

运行Feature自动化脚本,对目标模块以及APP产品内与目标模块相关联的各个功能模块进行自动化测试。

可选地,APP产品的模块更新方法还包括:在SpecFlow单元测试框架中引入各类浏览器的驱动程序。

可选地,所述在SpecFlow单元测试框架中引入各类浏览器的驱动程序,包括:

在SpecFlow单元测试框架中引入谷歌浏览器的ChromeDriver驱动程序;

在SpecFlow单元测试框架中引入IE浏览器的InternetExplorerDriver驱动程序。

可选地,所述基于Selenuim方法包封装各类测试操作,包括:

使用Selenuim方法包中的Thread.Sleep方法封装睡眠等待操作;

使用Selenuim方法包中WebDriverWait方法的Until函数查找元素是否存在等待操作。

可选地,所述基于Selenuim方法包封装各类测试操作,还包括:

使用Selenuim方法包中IWebElement方法的Click函数封装点击操作。

可选地,所述基于Selenuim方法包封装各类测试操作,还包括:

使用Selenuim方法包中IWebElement方法的SendKeys函数封装输入操作。

可选地,所述基于Selenuim方法包封装各类测试操作,还包括:

使用Selenuim方法包中WebDriverWait方法的Until函数的ExecuteScript封装ajax操作。

根据本发明的另一个方面,提供了一种APP产品的模块更新装置,包括:

第一引入模块,用于引用SpecFlow单元测试框架,并在SpecFlow单元测试框架中引入Selenuim方法包;

封装模块,用于基于Selenuim方法包封装各类测试操作和UI自动化测试提供的Given部分的通用操作流程;

生成模块,用于基于封装的各类测试操作和各类通用操作流程,生成通用测试模板和测试用例;

编写模块,用于当需要对APP产品的目标模块进行更新时,根据通用测试模板和测试用例编写Feature自动化脚本;

测试模块,用于运行Feature自动化脚本,对目标模块以及APP产品内与目标模块相关联的各个功能模块进行自动化测试。

根据本发明的又一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本发明上述任一方面所述的方法。

根据本发明的又一个方面,提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述可执行指令以实现本发明上述任一方面所述的方法。

从而,本发明引用了SpecFlow单元测试框架,并在SpecFlow单元测试框架中引入Selenuim方法包,使得后续可以基于Selenuim方法包封装各类测试操作和UI自动化测试提供的Given部分的通用操作流程,为后续生成通用测试模板和测试用例提供技术支撑。基于封装的各类测试操作和各类通用操作流程,生成通用测试模板和测试用例之后,编写Feature自动化脚本,通过运行Feature自动化脚本,对目标模块以及APP产品内与目标模块相关联的各个功能模块进行自动化测试。本发明使用Feature自动化脚本不仅可以实现每次版本迭代时进行快速多复杂场景验证,同时也可以保障每轮验证都是无遗漏且保持一致性的检查。解决了现有的对APP产品的功能单元或者模块进行测试的方法存在工作量巨大,无法保障每次的测试步骤的一致性的技术问题。

附图说明

通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:

图1是本发明一示例性实施例提供的APP产品的模块更新方法的流程示意图;

图2是本发明一示例性实施例提供的APP产品的模块更新装置的结构示意图;

图3是本发明一示例性实施例提供的电子设备的结构。

具体实施方式

下面,将参考附图详细地描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。

应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

本领域技术人员可以理解,本发明实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。

还应理解,在本发明实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。

还应理解,对于本发明实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。

另外,本发明中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本发明中字符“/”,一般表示前后关联对象是一种“或”的关系。

还应理解,本发明对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本发明实施例可以应用于通信终端、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与通信终端、计算机系统、服务器等电子设备一起使用的众所周知的通信终端、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

通信终端、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

示例性方法

图1是本发明一示例性实施例提供的APP产品的模块更新方法的一个流程示意图。如图1所示,APP产品的模块更新方法包括以下步骤:

步骤S101:引用SpecFlow单元测试框架,并在SpecFlow单元测试框架中引入Selenuim方法包;

在本发明实施例中,引用了SpecFlow单元测试框架,并在SpecFlow单元测试框架中引入Selenuim方法包。其中,Selenium方法包是一个用于Web应用程序测试的工具,是开源的,轻量级,能在多种主流浏览器上运行,支持JAVA\PYTHON等各种语言,可以根据需要选择不同的语言及相应的单元测试框架。因此,本发明根据APP产品的各个功能单元或者模块的测试需求,将Selenuim方法包和SpecFlow单元测试框架相结合,为后续模块的自动化测试提供技术支撑。

可选地,APP产品的模块更新方法还包括:在SpecFlow单元测试框架中引入各类浏览器的驱动程序。

可选地,所述在SpecFlow单元测试框架中引入各类浏览器的驱动程序,包括:在SpecFlow单元测试框架中引入谷歌浏览器的ChromeDriver驱动程序;在SpecFlow单元测试框架中引入IE浏览器的InternetExplorerDriver驱动程序。

在本发明实施例中,可以引入谷歌浏览器(Chrome)的ChromeDriver驱动程序与IE浏览器的InternetExplorerDriver驱动程序,使得后续在进行自动化测试时,可以通过相应的驱动程序打开谷歌浏览器或者IE浏览器。

步骤S102:基于Selenuim方法包封装各类测试操作和UI自动化测试提供的Given部分的通用操作流程;

可选地,所述基于Selenuim方法包封装各类测试操作,包括:使用Selenuim方法包中的Thread.Sleep方法封装睡眠等待操作;使用Selenuim方法包中WebDriverWait方法的Until函数查找元素是否存在等待操作。

可选地,所述基于Selenuim方法包封装各类测试操作,还包括:使用Selenuim方法包中IWebElement方法的Click函数封装点击操作。

可选地,所述基于Selenuim方法包封装各类测试操作,还包括:使用Selenuim方法包中IWebElement方法的SendKeys函数封装输入操作。

可选地,所述基于Selenuim方法包封装各类测试操作,还包括:使用Selenuim方法包中WebDriverWait方法的Until函数的ExecuteScript封装ajax操作。

在本发明实施例中,可以基于Selenuim方法包封装各类测试操作和UI自动化测试提供的Given部分的通用操作流程。例如但不限于为,基于Selenuim方法包封装等待、点击、输入、ajax等操作。

具体为,使用Selenuim方法包中的Thread.Sleep方法进行睡眠等待操作封装以及使用WebDriverWait方法中的Until函数来查找元素是否存在等待操作。使用Selenuim方法包中IWebElement方法的Click函数封装点击操作。使用Selenuim方法包中IWebElement方法的SendKeys函数封装输入操作。使用Selenuim方法包中WebDriverWait方法的Until函数的ExecuteScript封装ajax操作。通过这种方式,实现了各类测试操作和各类通用操作流程的封装,为后续生成通用测试模板和测试用例提供数据支撑。

步骤S103:基于封装的各类测试操作和各类通用操作流程,生成通用测试模板和测试用例;

在本发明实施例中,可以根据封装的各类测试操作和各类通用操作流程,生成通用测试模板和测试用例,从而为后续Feature自动化脚本的编写提供数据支撑。其中,测试用例包括:Feature--用例名称、Background--每个用例块执行前执行以及各个用例块。

步骤S104:当需要对APP产品的目标模块进行更新时,根据通用测试模板和测试用例编写Feature自动化脚本;

步骤S105:运行Feature自动化脚本,对目标模块以及APP产品内与目标模块相关联的各个功能模块进行自动化测试。

在本发明实施例中,通过运行Feature自动化脚本,开启自动化检测流程。

下面将以“APP产品名称为MIC智能营销云产品”作为示例,详细说明本发明提出的APP产品的模块更新方法的具体步骤。在更新MIC智能营销云产品时,当前需要测试的模块例如但不限于为来宾注册模块,对于该来宾注册模块,需要进行测试的字段包括:手机号、验证码、密码、确认密码、邮箱、姓名、公司名称、隐私声明等。

由于来宾注册模块是每个APP产品经常用到的一个模块,也是需要保持时刻稳定的一个模块,因此当APP产品进行版本迭代后,每次都需要重点检查这个来宾注册模块的各种正向反向逻辑,即需要对这个来宾注册模块的所有字段进行验证,实现具体步骤如下:

1、通过浏览器驱动程序打开浏览器,用浏览器打开产品链接,语句为:Given 打开‘xxxx'链接;

2、通过Selenuim方法包中的定位方式定位注册按钮因素,并且点击跳转注册页面,语句为:And 点击'//a[text()='免费注册!']'按钮;

3、进入注册页面,跳转了一个新的浏览器窗口,需要先切换浏览器窗口,语句为:切换窗体到'1' (0代表第一个窗口,1代表第二个窗口);

其中,对注册页面的各个字段进行正常和异常的测试验证,正常即满足填写格式进行信息填写,异常即不满足填写格式进行信息填写。(此处有很多语句,举例其中一个手机号为空得异常情况)语句为:

Given 等待'//img[@class="codeimgConImg"]'元素   (查找元素)

And 等待 500 毫秒     (等待页面响应)

And 点击'//span[text()="手机注册"]'按钮  (定位手机注册页面)

And 等待 800 毫秒     (等待页面响应)

And 点击'//*[@id="phoneBox"]/div/div[9]/button'按钮(手机号不填写,点击注册按钮)

And 等待 800 毫秒   (等待页面响应)

And 等待'//div[text()='请输入手机号!']'元素  (页面会有判断提示不能提交注册)

Then 存在'//div[text()='请输入手机号!']' (进行断言判断页面得实际结果和期望结果是否一致,一致得话则通过,反之不通过。)

4、依次类推,注册页面所有字段都需要进行各种情况验证,每一个字段可能有十几种甚至几十种场景,本发明都需要逐步验证。

从而,通过自动化脚本,使得APP产品内的各个功能模块的所有测试步骤均可由自动画机器人进行跟踪记录,模拟人工操作步骤,同时可以无休止的进行重复反复工作,不仅释放了人工也提高了非常可观的效率。并且,使用自动化脚本不仅可以在每次版本迭代时,可以进行快速多重复杂场景的验证(人工验证需要几个小时,自动化验证只需要几分钟),同时也可以保障每轮验证都是100%覆盖无遗漏的检查。

综上所述,本发明引用了SpecFlow单元测试框架,并在SpecFlow单元测试框架中引入Selenuim方法包,使得后续可以基于Selenuim方法包封装各类测试操作和UI自动化测试提供的Given部分的通用操作流程,为后续生成通用测试模板和测试用例提供技术支撑。基于封装的各类测试操作和各类通用操作流程,生成通用测试模板和测试用例之后,编写Feature自动化脚本,通过运行Feature自动化脚本,对目标模块以及APP产品内与目标模块相关联的各个功能模块进行自动化测试。本发明使用Feature自动化脚本不仅可以实现每次版本迭代时进行快速多复杂场景验证,同时也可以保障每轮验证都是无遗漏且保持一致性的检查。解决了现有的对APP产品的功能单元或者模块进行测试的方法存在工作量巨大,无法保障每次的测试步骤的一致性的技术问题。

示例性装置

图2是本发明一示例性实施例提供的APP产品的模块更新装置200的结构示意图。如图2所示,该装置200包括:

第一引入模块210,用于引用SpecFlow单元测试框架,并在SpecFlow单元测试框架中引入Selenuim方法包;

封装模块220,用于基于Selenuim方法包封装各类测试操作和UI自动化测试提供的Given部分的通用操作流程;

生成模块230,用于基于封装的各类测试操作和各类通用操作流程,生成通用测试模板和测试用例;

编写模块240,用于当需要对APP产品的目标模块进行更新时,根据通用测试模板和测试用例编写Feature自动化脚本;

测试模块250,用于运行Feature自动化脚本,对目标模块以及APP产品内与目标模块相关联的各个功能模块进行自动化测试。

可选地,APP产品的模块更新装置200还包括:第二引入模块,用于在SpecFlow单元测试框架中引入各类浏览器的驱动程序。

可选地,所述第二引入模块,具体用于:

在SpecFlow单元测试框架中引入谷歌浏览器的ChromeDriver驱动程序;

在SpecFlow单元测试框架中引入IE浏览器的InternetExplorerDriver驱动程序。

可选地,所述封装模块220,具体用于:

使用Selenuim方法包中的Thread.Sleep方法封装睡眠等待操作;

使用Selenuim方法包中WebDriverWait方法的Until函数查找元素是否存在等待操作。

可选地,所述封装模块220,还具体用于:

使用Selenuim方法包中IWebElement方法的Click函数封装点击操作。

可选地,所述封装模块220,还具体用于:

使用Selenuim方法包中IWebElement方法的SendKeys函数封装输入操作。

可选地,所述封装模块220,还具体用于:

使用Selenuim方法包中WebDriverWait方法的Until函数的ExecuteScript封装ajax操作。

本发明的实施例的APP产品的模块更新装置与本发明的另一个实施例的APP产品的模块更新方法相对应,在此不再赘述。

示例性电子设备

图3是本发明一示例性实施例提供的电子设备的结构。如图3所示,电子设备30包括一个或多个处理器31和存储器32。

处理器31可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。

存储器32可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器31可以运行所述程序指令,以实现上文所述的本发明的各个实施例的软件程序的方法以及/或者其他期望的功能。在一个示例中,电子设备还可以包括:输入装置33和输出装置34,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。

此外,该输入装置33还可以包括例如键盘、鼠标等等。

该输出装置34可以向外部输出各种信息。该输出装置34可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。

当然,为了简化,图3中仅示出了该电子设备中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。

示例性计算机程序产品和计算机可读存储介质

除了上述方法和设备以外,本发明的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的方法中的步骤。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本发明的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的方法中的步骤。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,在本发明中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明为必须采用上述具体的细节来实现。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明中涉及的器件、系统、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、系统、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

还需要指出的是,在本发明的系统、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

相关技术
  • 一种数据的更新方法、装置、电子设备及可读介质
  • 一种游戏更新的方法及装置、电子设备、存储介质
  • 一种网页的动态更新方法、装置、电子设备及存储介质
  • 神经网络的更新方法、更新装置和电子设备
  • 一种风险保障产品的推送方法、装置及电子设备
  • 一种APP应用更新方法、装置及电子设备
  • 一种APP应用更新方法、装置及电子设备
技术分类

06120115970993