UI测试用例的生成方法、系统、电子设备和介质与流程

文档序号:29939292发布日期:2022-05-07 14:08阅读:111来源:国知局
UI测试用例的生成方法、系统、电子设备和介质与流程
ui测试用例的生成方法、系统、电子设备和介质
技术领域
1.本发明涉及软件测试技术领域,尤其涉及一种ui测试用例的生成方法、系统、电子设备和介质。


背景技术:

2.通常,软件测试是基于预先设计的测试用例,由测试人员根据测试用例中描述的流程对软件进行一步步测试的过程。现有技术中,软件的ui(user interface,用户界面)的测试用例是通过手写测试用例,并在开发者的电脑上另外安装执行环境后,才可执行。手写测试用例效率低下,并且安装执行环境不仅困难,费时,还经常出现环境不一致的问题,进而降低测试用例编写成本,提高产品开发和验收效率。


技术实现要素:

3.本发明要解决的技术问题是为了克服现有技术中手写测试用例效率低,安装执行环境困难,费时,且经常出现环境不一致的问题的缺陷,提供一种ui测试用例的生成方法、系统、电子设备和介质。
4.本发明是通过下述技术方案来解决上述技术问题:
5.本发明提供一种ui测试用例的生成方法,所述生成方法包括:
6.获取待测ui对应的测试地址;
7.基于所述测试地址,获取所述测试地址的ui的操作;
8.根据所述操作,匹配对应的操作语法;其中,所述操作语法与所述操作预先建立关联关系且预先存储至语法库中;
9.基于所述操作语法,生成测试用例。
10.较佳地,所述根据所述操作,匹配对应的操作语法包括:
11.基于所述操作,生成对应的消息事件;
12.根据所述消息事件,匹配对应的操作语法。
13.较佳地,所述根据所述消息事件,匹配对应的操作语法,包括:
14.通过提前预置在待测ui的脚本,获取所述消息事件;
15.识别所述消息事件,匹配对应的操作语法。
16.较佳地,在所述匹配对应的操作语法的步骤之后,所述生成方法还包括:
17.判断所述操作语法的是否错误,若是,则生成提示信息。
18.本发明还提供一种ui测试用例的生成系统,所述生成系统包括:
19.第一获取模块,用于获取待测ui对应的测试地址;
20.第二获取模块,用于基于所述测试地址,获取所述测试地址的ui的操作;
21.匹配模块,用于根据所述操作,匹配对应的操作语法;其中,所述操作语法与所述操作预先建立关联关系且预先存储至语法库中;
22.生成模块,用于基于所述操作语法,生成测试用例。
23.较佳地,所述匹配模块包括:
24.生成单元,用于基于所述操作,生成对应的消息事件;
25.匹配单元,用于根据所述消息事件,匹配对应的操作语法。
26.较佳地,所述匹配单元包括:
27.获取子单元,用于通过提前预置在待测ui的脚本,获取所述消息事件;
28.匹配子单元,用于识别所述消息事件,匹配对应的操作语法。
29.较佳地,所述生成系统还包括:
30.判断模块,用于判断所述操作语法的是否错误,若是,则生成提示信息。
31.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前述的ui测试用例的生成方法。
32.本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的ui测试用例的生成方法。
33.本发明的积极进步效果在于:
34.本发明提供一种ui测试用例生成方法、系统、电子设备和介质,所述ui测试用例生成方法通过待测ui对应的测试地址,基于所述测试地址,获取测试地址的ui的操作并根据操作匹配对应的操作语法,基于所述操作语法,生成测试用例,从而实现了自动生成测试用例,提高了测试用例生成的效率,同时还解决了安装执行环境困难,费时,且经常出现环境不一致的问题。
附图说明
35.图1为本发明实施例1的ui测试用例的生成方法的流程图。
36.图2为本发明实施例1中的ide初始化示意图。
37.图3为本发明实施例1中的选择工作目录示意图。
38.图4为本发明实施例1中的输入自动提示示意图。
39.图5为本发明实施例1中的录制操作示意图。
40.图6为本发明实施例1中的运行测试用例示意图。
41.图7为本发明实施例1中的生成运行报告示意图。
42.图8为本发明实施例1的步骤s103的流程图。
43.图9为本发明实施例1的步骤s1032的流程图。
44.图10为本发明实施例2的ui测试用例的生成系统的模块示意程图。
45.图11为本发明实施例2的匹配模块3的模块示意程图。
46.图12为本发明实施例2的匹配单元32的模块示意程图。
47.图13为本发明实施例3的电子设备的结构示意图。
具体实施方式
48.下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
49.实施例1
50.如图1,本实施例公开了一种ui测试用例的生成方法,所述生成方法包括:
51.步骤s101、获取待测ui对应的测试地址;
52.具体地,该测试地址是在浏览器中可以正常打开的地址。
53.步骤s102、基于所述测试地址,获取所述测试地址的ui的操作;
54.具体地,ui的操作的表现形式,如,点击ui的a按钮等。
55.步骤s103、根据所述操作,匹配对应的操作语法;所述操作语法与所述操作预先建立关联关系且预先存储至语法库中;
56.具体地,操作语法可以采用自然语言的形式。自然语言一般指人类能识别的语言,对于国内开发者而言通常使用中文语句,即中文语句编写的测试用例,通常根据具体场景也可以使用英文与数字。
57.步骤s104、基于所述操作语法,生成测试用例。
58.具体地,在生成测试用例的过程中,也实现了测试用例的录制。具体地,基于异步通信机制,待测试应用可以与ide(integrated development environment,开发环境)通信和交互,实现录制功能;本发明中使用electron开发的桌面应用搭载一个web(全球广域网)页面作为应用界面,基于web页面之间的postmessage(发送消息)事件通信机制,使electron(电子器件)搭载的web应用可以与待测试web应用通信,在待测试web应用上的任何操作,可通过message(消息)事件通知到ide,ide即可从本地语法库中匹配对应的操作语法,
59.在生成测试用例后,基于bdd(行为驱动开发)模式工具cucumber(一种自动化测试的副产品)可以将自然语言翻译为脚本语言,通过脚本语言驱动ui功能的测试验证来完成测试用例的执行。执行完测试用例,可以一键生成自动化报告,通过可视化界面的形式反馈;本方案中使用cucumber内置的报告机制实现生成可视化界面报告。
60.在一具体的生成和运行测试用例的操作如下:第一,确认计算机是否安装桌面软件的开发语言环境,可以采用任何桌面软件的开发语言环境。如果通过其他软件开发工具诸如c++,java,python,都可以安装其对应的语言环境。若桌面软件应用使用nodejs(一种运行环境)技术,因此需要安装nodejs。如图2所示,下载本发明方法对应的应用软件压缩包,解压后打开。应用进行初始化,将内置的框架压缩包解压到本地工作目录。
61.第二,如图3所示,初始化完成后展示ide主界面,可以选择工作目录用于编辑和录入测试用例
62.第三,如图4所示,在指定工作目录中选择测试用例文件进行编辑,ide根据本地语法库识别用户输入自动提示补全语法,可有效降低记忆语法的成本,通过输入关键字即可补全整段测试语句。
63.第四,如图5所示,输入链接跳转到测试页面,即可操作录制,如图点击切换tab(键盘制表定位键),编辑面板的用例自动补全自然语言测试步骤;自动补全用例可有效降低测试人员的用例编写成本,原有手写测试用例仅需点击左侧的屏幕界面即可自动生成。
64.第五,如图6所示,点击运行按钮即可创建本地运行环境,执行当前编辑的测试用例,ide中会弹起日志浮层显示当前运行日志。
65.第六,如图7所示,测试用例运行完毕,即可点击生成报告按钮,ide会弹窗显示可视化报告界面。
66.本方案,ui测试用例生成方法通过待测ui对应的测试地址,基于所述测试地址,获取测试地址的ui的操作并根据操作匹配对应的操作语法,基于所述操作语法,生成测试用例,从而实现了自动生成测试用例,提高了测试用例生成的效率,同时还解决了安装执行环境困难,费时,且经常出现环境不一致的问题。
67.如图8所示,在一可实施的方式中,步骤s103包括:
68.步骤s1031、基于所述操作,生成对应的消息事件;
69.步骤s1032、根据所述消息事件,匹配对应的操作语法。
70.本方案,通过将消息事件与操作语法预先进行关联,当进行ui的操作生成对应的消息事件时,可以自动匹配对应的操作语法,从而实现了自动生成测试用例。
71.如图9所示,在一可实施的方式中,步骤s1032包括:
72.步骤s10321、通过提前预置在待测ui的脚本,获取所述消息事件;
73.步骤s10322、识别所述消息事件,匹配对应的操作语法。
74.在一具体的实施例中,一采用自然语言的测试用例如下:
75.如果跳转到a页面;
76.并且点击按钮a;
77.那么b的文案是[xxx];
[0078]
则生成上述测试用例的过程如下:
[0079]
第一步,打开a页面的测试地址,该测试地址是在浏览器中可以正常打开的地址;
[0080]
第二步,识别到打开的地址,并自动输出“如果跳转到a页面;”[0081]
第三步,在测试地址的ui界面上点击按钮a,测试地址中的按钮a可以通过提前预置在a页面的脚本,触发点击的事件;
[0082]
第四步,根据按钮a被点击,在语法库中匹配对应测试语句,随即生成“并且点击按钮a”;
[0083]
第五步,在测试地址的ui界面上的b按钮区域,点击鼠标右键,测试地址中的按钮b可以通过提前预置在a页面的脚本,推送消息给桌面应用,包含b按钮的文案信息;
[0084]
第五步,桌面应用可以根据消息推送,识别到文案消息,并在语法库中匹配对应测试语句,随即生成“那么b的文案是[xxx]”;
[0085]
本方案,通过提前预置在待测ui的脚本,来自动获取所述消息事件,再通过识别所述消息事件,自动匹配对应的操作语法,从而实现了自动生成测试用例。
[0086]
在一可实施的方式中,在步骤s104之后,还包括:
[0087]
判断所述操作语法的是否错误,若是,则生成提示信息。
[0088]
具体地,可通过识别用户输入,自动提示完整语法,或自动识别语法错误,当识别出操作语法存在错误时,则生成提示信息;本方案中内置了cucumber的语法编辑器,可实现根据用户输入自动识别语法错误和自动化提示补全语法。
[0089]
本方案,通过当操作语法的存在错误时,能够自动生成提示信息,从而保证了自动生成的测试用例的准确性。
[0090]
实施例2
[0091]
如图10所示,本实施例公开了一种ui测试用例的生成系统,所述生成系统包括:
[0092]
第一获取模块1,用于获取待测ui对应的测试地址;
[0093]
具体地,该测试地址是在浏览器中可以正常打开的地址。
[0094]
第二获取模块2,用于基于所述测试地址,获取所述测试地址的ui的操作;
[0095]
具体地,ui的操作的表现形式,如,点击ui的a按钮等。
[0096]
匹配模块3,用于根据所述操作,匹配对应的操作语法;其中,所述操作语法与所述操作预先建立关联关系且预先存储至语法库中;
[0097]
具体地,操作语法可以采用自然语言的形式。自然语言一般指人类能识别的语言,对于国内开发者而言通常使用中文语句,即中文语句编写的测试用例,通常根据具体场景也可以使用英文与数字。
[0098]
生成模块4,用于基于所述操作语法,生成测试用例。
[0099]
具体地,在生成测试用例的过程中,也实现了测试用例的录制。具体地,基于异步通信机制,待测试应用可以与ide(integrated development environment,开发环境)通信和交互,实现录制功能;本发明中使用electron开发的桌面应用搭载一个web页面作为应用界面,基于web页面之间的postmessage事件通信机制,使electron搭载的web应用可以与待测试web应用通信,在待测试web应用上的任何操作,可通过message事件通知到ide,ide即可从本地语法库中匹配对应的操作语法,
[0100]
在生成测试用例后,基于bdd模式工具cucumber可以将自然语言翻译为脚本语言,通过脚本语言驱动ui功能的测试验证来完成测试用例的执行。执行完测试用例,可以一键生成自动化报告,通过可视化界面的形式反馈;本方案中使用cucumber内置的报告机制实现生成可视化界面报告。
[0101]
在一具体的生成和运行测试用例的操作如下:第一,如图2所示,确认计算机是否安装桌面软件的开发语言环境,可以采用任何桌面软件的开发语言环境。如果通过其他软件开发工具诸如c++,java,python,都可以安装其对应的语言环境。若桌面软件应用使用nodejs技术,因此需要安装nodejs。如图4所示,下载本发明方法对应的应用软件压缩包,解压后打开。应用会进行初始化,初始化的步骤是将内置的框架压缩包解压到本地工作目录;
[0102]
第二,如图3所示,初始化完成后展示ide主界面,可以选择工作目录用于编辑和录入测试用例
[0103]
第三,如图4所示,在指定工作目录中选择测试用例文件进行编辑,ide根据本地语法库识别用户输入自动提示补全语法,可有效降低记忆语法的成本,通过输入关键字即可补全整段测试语句。
[0104]
第四,如图5所示,输入链接跳转到测试页面,即可操作录制,如图点击切换tab,编辑面板的用例自动补全自然语言测试步骤;自动补全用例可有效降低测试人员的用例编写成本,原有手写测试用例仅需点击左侧的屏幕界面即可自动生成。
[0105]
第五,如图6所示,点击运行按钮即可创建本地运行环境,执行当前编辑的测试用例,ide中会弹起日志浮层显示当前运行日志。
[0106]
第六,如图7所示,测试用例运行完毕,即可点击生成报告按钮,ide会弹窗显示可视化报告界面。
[0107]
本方案,ui测试用例生成方法通过待测ui对应的测试地址,基于所述测试地址,获取测试地址的ui的操作并根据操作匹配对应的操作语法,基于所述操作语法,生成测试用例,从而实现了自动生成测试用例,提高了测试用例生成的效率,同时还解决了安装执行环
境困难,费时,且经常出现环境不一致的问题。
[0108]
如图11所示,在一可实施的方式中,所述匹配模块3包括:
[0109]
生成单元31,用于基于所述操作,生成对应的消息事件;
[0110]
匹配单元32,用于根据所述消息事件,匹配对应的操作语法。
[0111]
本方案,通过将消息事件与操作语法预先进行关联,当进行ui的操作生成对应的消息事件时,可以自动匹配对应的操作语法,从而实现了自动生成测试用例。
[0112]
如图12所示,在一可实施的方式中,所述匹配单元32包括:
[0113]
获取子单元321,用于通过提前预置在待测ui的脚本,获取所述消息事件;
[0114]
匹配子单元322,用于识别所述消息事件,匹配对应的操作语法。
[0115]
在一具体的实施例中,一采用自然语言的测试用例如下:
[0116]
如果跳转到a页面;
[0117]
并且点击按钮a;
[0118]
那么b的文案是[xxx];
[0119]
则生成上述测试用例的过程如下:
[0120]
第一步,打开a页面的测试地址,该测试地址是在浏览器中可以正常打开的地址;
[0121]
第二步,识别到打开的地址,并自动输出“如果跳转到a页面;”[0122]
第三步,在测试地址的ui界面上点击按钮a,测试地址中的按钮a可以通过提前预置在a页面的脚本,触发点击的事件;
[0123]
第四步,根据按钮a被点击,在语法库中匹配对应测试语句,随即生成“并且点击按钮a”;
[0124]
第五步,在测试地址的ui界面上的b按钮区域,点击鼠标右键,测试地址中的按钮b可以通过提前预置在a页面的脚本,推送消息给桌面应用,包含b按钮的文案信息;
[0125]
第五步,桌面应用可以根据消息推送,识别到文案消息,并在语法库中匹配对应测试语句,随即生成“那么b的文案是[xxx]”;
[0126]
本方案,通过提前预置在待测ui的脚本,来自动获取所述消息事件,再通过识别所述消息事件,自动匹配对应的操作语法,从而实现了自动生成测试用例。
[0127]
在一可实施的方式中,所述生成系统还包括:
[0128]
判断模块5,用于判断所述操作语法的是否错误,若是,则生成提示信息。
[0129]
具体地,可通过识别用户输入,自动提示完整语法,或自动识别语法错误,当识别出操作语法存在错误时,则生成提示信息;本方案中内置了cucumber的语法编辑器,可实现根据用户输入自动识别语法错误和自动化提示补全语法。
[0130]
本方案,通过当操作语法的存在错误时,能够自动生成提示信息,从而保证了自动生成的测试用例的准确性。
[0131]
实施例3
[0132]
图13为本发明实施例3提供的一种电子设备的结构示意图。所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例1所提供的ui测试用例的生成方法。图13显示的电子设备40仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0133]
如图13所示,电子设备40可以以通用计算设备的形式表现,例如其可以为服务器
设备。电子设备40的组件可以包括但不限于:上述至少一个处理器41、上述至少一个存储器42、连接不同系统组件(包括存储器42和处理器41)的总线43。
[0134]
总线43包括数据总线、地址总线和控制总线。
[0135]
存储器42可以包括易失性存储器,例如随机存取存储器(ram)421和/或高速缓存存储器422,还可以进一步包括只读存储器(rom)423。
[0136]
存储器42还可以包括具有一组(至少一个)程序模块424的程序/实用工具425,这样的程序模块424包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0137]
处理器41通过运行存储在存储器42中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1所提供的ui测试用例的生成方法。
[0138]
电子设备40也可以与一个或多个外部设备44(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口45进行。并且,模型生成的设备40还可以通过网络适配器46与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器46通过总线43与模型生成的设备40的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备40使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
[0139]
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
[0140]
实施例4
[0141]
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1所提供的ui测试用例的生成方法。
[0142]
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
[0143]
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1所提供的ui测试用例的生成方法。
[0144]
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
[0145]
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1