一种测试脚本生成方法、装置、设备及可读存储介质与流程

文档序号:29418025发布日期:2022-03-26 13:38阅读:90来源:国知局
一种测试脚本生成方法、装置、设备及可读存储介质与流程

1.本发明涉及软件测试技术领域,具体而言,涉及一种测试脚本生成方法、装置、设备及可读存储介质。


背景技术:

2.现有的软件测试通常需要人为手动进行测试,即人工手动点击或滑动软件的交互界面上的图标,而在软件的更新迭代中,需要人工手动对每次更新后的软件进行模拟操作测试,进而极大地影响了软件的开发速度。


技术实现要素:

3.本发明的目的在于提供一种测试脚本生成方法、装置、设备及可读存储介质,以改善上述问题。
4.为了实现上述目的,本技术实施例提供了如下技术方案:
5.一方面,本技术实施例提供了一种测试脚本生成方法,所述方法包括:获取测试案例,所述测试案例为一段描述业务需求的文字;根据所述测试案例,计算得到解析数据,所述解析数据为用于实现所述业务需求所需要的行为需求数据和组件需求数据;根据所述解析数据,计算得到测试脚本,所述测试脚本用于模拟用户在交互界面上的操作。
6.优选地,所述根据所述测试案例,计算得到解析数据,包括:
7.获取语法库,所述语法库中包括多个语法模式;
8.根据所述测试案例,在所述语法库中找到第一语法模式,所述第一语法模式为与所述测试案例对应的所述语法模式;
9.根据所述测试案例和所述第一语法模式,构建业务实现步骤;
10.根据所述业务实现步骤,计算得到所述解析数据。
11.优选地,所述根据所述测试案例,在所述语法库中找到第一语法模式,包括:
12.调取所述测试案例;
13.根据所述测试案例,计算得到测试语法模式;
14.在所述语法库中寻找一个与所述测试语法模式相同的所述语法模式;
15.若在所述语法库中存在一个所述语法模式与所述测试语法模式相同,则将所述相同的语法模式记为第一语法模式。
16.优选地,所述在所述语法库中寻找一个与所述测试语法模式相同的所述语法模式后,还包括:
17.若所述语法库中的多个所述语法模式均与所述测试语法模式不同,则判定所述测试案例的语法表述方式存在问题;
18.将所述有问题的测试案例进行语句修正;
19.根据修正后的所述测试案例,计算得到所述测试脚本。
20.优选地,所述根据所述解析数据,计算得到测试脚本,包括:
21.调取所述解析数据和用户数据,所述解析数据包括行为需求数据和组件需求数据,所述用户数据为包含用户信息的数据;
22.构建原子组件库和原子行为库,所述原子组件库包括多个用于人机交互的交互单元,所述原子行为库包括多个原子行为数据,所述原子行为数据为反应所述交互单元的动作行为的数据;
23.根据所述行为需求数据,在所述原子行为库找到第一原子行为数据,所述第一原子行为数据为与所述行为需求数据对应的原子行为数据;
24.根据所述组件需求数据,在所述原子组件库找到第一原子组件,所述第一原子组件为与所述组件需求数据对应的交互单元数据;
25.根据所述第一原子行为数据、第一原子组件和用户数据,生成所述测试脚本。
26.优选地,所述构建原子组件库,包括:
27.获取多个软件页面,所述原子组件库包括多个子原子组件库;
28.创建子库操作:调取一个所述软件页面,记为第一软件页面,并分别获取位于所述第一软件页面上的每个交互单元的坐标数据和标识数据,然后根据所有所述交互单元的坐标数据和标识数据,生成一个子原子组件库;
29.调取另一个未被调取的所述软件页面,重复执行所述创建子库操作,直至多个所述软件页面均被调取。
30.第二方面,本技术实施例提供了一种测试脚本生成系统,所述系统包括:
31.获取模块,用于获取测试案例,所述测试案例为一段描述业务需求的文字;
32.第一计算模块,用于根据所述测试案例,计算得到解析数据,所述解析数据为用于实现所述业务需求所需要的行为需求数据和组件需求数据;
33.第二计算模块,用于根据所述解析数据,计算得到测试脚本,所述测试脚本用于模拟用户在交互界面上的操作。
34.优选地,所述第一计算模块,包括:
35.第一获取单元,用于获取语法库,所述语法库中包括多个语法模式;
36.第一计算单元,用于根据所述测试案例,在所述语法库中找到第一语法模式,所述第一语法模式为与所述测试案例对应的所述语法模式;
37.第二计算单元,用于根据所述测试案例和所述第一语法模式,构建业务实现步骤;
38.第三计算单元,用于根据所述业务实现步骤,计算得到所述解析数据。
39.优选地,所述第二计算单元,包括:
40.第一调取单元,用于调取所述测试案例;
41.第四计算单元,用于根据所述测试案例,计算得到测试语法模式;
42.第五计算单元,用于在所述语法库中寻找一个与所述测试语法模式相同的所述语法模式;
43.第一判定单元,用于判定若在所述语法库中存在一个所述语法模式与所述测试语法模式相同,则将所述相同的语法模式记为第一语法模式。
44.优选地,所述第五计算单元,包括:
45.第二判定单元,用于判定若所述语法库中的多个所述语法模式均与所述测试语法模式不同,则判定所述测试案例的语法表述方式存在问题;
46.修正单元,用于将所述有问题的测试案例进行语句修正;
47.第六计算单元,用于根据修正后的所述测试案例,计算得到所述测试脚本。
48.优选地,所述第二计算模,包括:
49.第二调取单元,用于调取所述解析数据和用户数据,所述解析数据包括行为需求数据和组件需求数据,所述用户数据为包含用户信息的数据;
50.第一构建单元,用于构建原子组件库和原子行为库,所述原子组件库包括多个用于人机交互的交互单元,所述原子行为库包括多个原子行为数据,所述原子行为数据为反应所述交互单元的动作行为的数据;
51.第七计算单元,用于根据所述行为需求数据,在所述原子行为库找到第一原子行为数据,所述第一原子行为数据为与所述行为需求数据对应的原子行为数据;
52.第八计算单元,用于根据所述组件需求数据,在所述原子组件库找到第一原子组件,所述第一原子组件为与所述组件需求数据对应的交互单元数据;
53.第九计算单元,用于根据所述第一原子行为数据、第一原子组件和用户数据,生成所述测试脚本。
54.优选地,所述构建原子组件库,包括:
55.第二获取单元,用于获取多个软件页面,所述原子组件库包括多个子原子组件库;
56.第一创建单元,用于创建子库操作:调取一个所述软件页面,记为第一软件页面,并分别获取位于所述第一软件页面上的每个交互单元的坐标数据和标识数据,然后根据所有所述交互单元的坐标数据和标识数据,生成一个子原子组件库;
57.第三调取单元,用于调取另一个未被调取的所述软件页面,重复执行所述创建子库操作,直至多个所述软件页面均被调取。
58.第三方面,本技术实施例提供了一种测试脚本生成设备,所述设备包括存储器和处理器。存储器用于存储计算机程序;处理器用于执行所述计算机程序时实现上述测试脚本生成方法的步骤。
59.第四方面,本技术实施例提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述测试脚本生成方法的步骤。
60.本发明的有益效果为:
61.本发明通过对测试案例进行解析得到用于模拟用户在界面上操作的脚本,进而避免纯人工的模拟操作,极大地提高了研发效率。
62.本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
63.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
64.图1是本发明实施例中所述的一种测试脚本生成方法流程示意图。
65.图2是本发明实施例中所述的一种测试脚本生成系统结构示意图。
66.图3是本发明实施例中所述的一种测试脚本生成设备结构示意图。
具体实施方式
67.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
68.应注意到:相似的标号或字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
69.实施例1
70.如图1所示,本实施例提供了一种测试脚本生成方法,该方法包括步骤s1、步骤s2和步骤s3。
71.步骤s1.获取测试案例,所述测试案例为一段描述业务需求的文字;
72.步骤s2.根据所述测试案例,计算得到解析数据,所述解析数据为用于实现所述业务需求所需要的行为需求数据和组件需求数据;
73.步骤s3.根据所述解析数据,计算得到测试脚本,所述测试脚本用于模拟用户在交互界面上的操作。
74.系统先获取一个测试案子,测试案例为一段描述业务需求的文字,如“登录用户界面等”;
75.然后,调取预设好的语法库,在所述语法库中寻找是否有与所述测试案例的语法模式相同或类似的语法模式,如果没有找到与所述测试案例的语法模式相同或类似的语法模式,将所述测试案例发送至系统自带的语句修正模块进行语法修正,然后再将修正后的所述测试案例进行语法分析操作;
76.如果有与所述测试案例的语法模式相同或类似的语法模式,则对所述测试案例进行语法分析操作,其中,具体的语法分析操作为:
77.语法分析操作:系统会对所述测试案子进行分析,如获取动词“登录”,以及动作对象“用户界面”,系统通过分析,得到多个用于实现所述业务需求所需要的行为需求数据和组件需求数据;
78.将所述行为需求数据和组件需求数据转发至所述案例组装器,所述案例组装器为所述系统的一部分,案例组装器根据所述组件需求数据,在所述原子组件库找到第一原子组件,其中,所述第一原子组件可以为一些界面上的操作按钮:如“确认按钮”,“取消按钮”,“下一步按钮”,“输入框”,“表单”等;所述案例组装器根据所述行为需求数据在所述原子行为库找到第一原子行为数据,所述第一原子行为数据为与所述行为需求数据对应的原子行为数据,如所述第一原子行为数据可以理解为执行“点击确定按钮”、“点击下一页按钮”的
代码数据等,其次,对于本实施例所述的“登录用户界面等”测试案例,则需要相应的用户名和登录密码等表示用户信息的数据,才能实现所述“登录用户界面”的操作,通过将所述第一原子行为数据、第一原子组件和用户数据代码整合,得到所述用于在交互界面上自动执行所述“登录用户界面”的测试脚本。
79.本发明通过对测试案例进行解析得到用于模拟用户在界面上操作的脚本,进而避免纯人工的模拟操作,极大地提高了研发效率。
80.在本公开的一种具体实施方式中,所述根据所述测试案例,计算得到解析数据,包括:
81.获取语法库,所述语法库中包括多个语法模式;
82.根据所述测试案例,在所述语法库中找到第一语法模式,所述第一语法模式为与所述测试案例对应的所述语法模式;
83.根据所述测试案例和所述第一语法模式,构建业务实现步骤;
84.根据所述业务实现步骤,计算得到所述解析数据。
85.在本实施中系统通过分析“登录用户界面”,得到以下业务实现步骤:先点击“用户名框”组件,然后输入“用户名数据”,然后点击“密码框”,输入密码,然后点击“登录”。
86.在本公开的一种具体实施方式中,所述根据所述测试案例,在所述语法库中找到第一语法模式,包括:
87.调取所述测试案例;
88.根据所述测试案例,计算得到测试语法模式;
89.在所述语法库中寻找一个与所述测试语法模式相同的所述语法模式;
90.若在所述语法库中存在一个所述语法模式与所述测试语法模式相同,则将所述相同的语法模式记为第一语法模式。
91.例如在本公开的实施例中,系统先获取一个测试案子,测试案例为一段描述业务需求的文字,如“登录用户界面等”;
92.然后,调取预设好的语法库,在所述语法库中寻找是否有与所述测试案例的语法模式相同或类似的语法模式,如果没有找到与所述测试案例的语法模式相同或类似的语法模式,将所述测试案例发送至系统自带的语句修正模块进行语法修正,然后再将修正后的所述测试案例进行语法分析操作;
93.如果有与所述测试案例的语法模式相同或类似的语法模式,则对所述测试案例进行语法分析操作。
94.在本公开的一种具体实施方式中,所述在所述语法库中寻找一个与所述测试语法模式相同的所述语法模式后,还包括:
95.若所述语法库中的多个所述语法模式均与所述测试语法模式不同,则判定所述测试案例的语法表述方式存在问题;
96.将所述有问题的测试案例进行语句修正;
97.根据修正后的所述测试案例,计算得到所述测试脚本。
98.在本公开的实施例中,系统先获取一个测试案子,测试案例为一段描述业务需求的文字,如“登录用户界面等”;
99.然后,调取预设好的语法库,在所述语法库中寻找是否有与所述测试案例的语法
模式相同或类似的语法模式,如果没有找到与所述测试案例的语法模式相同或类似的语法模式,将所述测试案例发送至系统自带的语句修正模块进行语法修正,然后再将修正后的所述测试案例进行语法分析操作。
100.在本公开的一种具体实施方式中,所述根据所述解析数据,计算得到测试脚本,包括:
101.调取所述解析数据和用户数据,所述解析数据包括行为需求数据和组件需求数据,所述用户数据为包含用户信息的数据;
102.构建原子组件库和原子行为库,所述原子组件库包括多个用于人机交互的交互单元,所述原子行为库包括多个原子行为数据,所述原子行为数据为反应所述交互单元的动作行为的数据;
103.根据所述行为需求数据,在所述原子行为库找到第一原子行为数据,所述第一原子行为数据为与所述行为需求数据对应的原子行为数据;
104.根据所述组件需求数据,在所述原子组件库找到第一原子组件,所述第一原子组件为与所述组件需求数据对应的交互单元数据;
105.根据所述第一原子行为数据、第一原子组件和用户数据,生成所述测试脚本。
106.将所述行为需求数据和组件需求数据转发至所述案例组装器,所述案例组装器为所述系统的一部分,案例组装器根据所述组件需求数据,在所述原子组件库找到第一原子组件,其中,所述第一原子组件可以为一些界面上的操作按钮:如“确认按钮”,“取消按钮”,“下一步按钮”,“输入框”,“表单”等;所述案例组装器根据所述行为需求数据在所述原子行为库找到第一原子行为数据,所述第一原子行为数据为与所述行为需求数据对应的原子行为数据,如所述第一原子行为数据可以理解为执行“点击确定按钮”、“点击下一页按钮”的代码数据等,其次,对于本实施例所述的“登录用户界面等”测试案例,则需要相应的用户名和登录密码等表示用户信息的数据,才能实现所述“登录用户界面”的操作,通过将所述第一原子行为数据、第一原子组件和用户数据代码整合,得到所述用于在交互界面上自动执行所述“登录用户界面”的测试脚本。
107.在本公开的一种具体实施方式中,所述构建原子组件库,包括:
108.获取多个软件页面,所述原子组件库包括多个子原子组件库;
109.创建子库操作:调取一个所述软件页面,记为第一软件页面,并分别获取位于所述第一软件页面上的每个交互单元的坐标数据和标识数据,然后根据所有所述交互单元的坐标数据和标识数据,生成一个子原子组件库;
110.调取另一个未被调取的所述软件页面,重复执行所述创建子库操作,直至多个所述软件页面均被调取。
111.本实施例公开了一种如何构建原子组件库的方法,即依次对每个软件页面上的图标进行识别和保存,通过结合目标检测、图像识别、ocr文字识别等技术,自动识别页面元素,快速创建标准全面的原子组件库,提升组件库建立的效率,减少对人工的依赖,保证了精准度和维护工作的便利性。
112.实施例2
113.如图2所示,本实施例提供了一种测试脚本生成系统,所述系统包括:
114.获取模块71,用于获取测试案例,所述测试案例为一段描述业务需求的文字;
115.第一计算模块72,用于根据所述测试案例,计算得到解析数据,所述解析数据为用于实现所述业务需求所需要的行为需求数据和组件需求数据;
116.第二计算模块73,用于根据所述解析数据,计算得到测试脚本,所述测试脚本用于模拟用户在交互界面上的操作。
117.在本公开的一种具体实施方式中,所述第一计算模块72,包括:
118.第一获取单元721,用于获取语法库,所述语法库中包括多个语法模式;
119.第一计算单元722,用于根据所述测试案例,在所述语法库中找到第一语法模式,所述第一语法模式为与所述测试案例对应的所述语法模式;
120.第二计算单元723,用于根据所述测试案例和所述第一语法模式,构建业务实现步骤;
121.第三计算单元724,用于根据所述业务实现步骤,计算得到所述解析数据。
122.在本公开的一种具体实施方式中,所述第二计算单元723,包括:
123.第一调取单元7231,用于调取所述测试案例;
124.第四计算单元7232,用于根据所述测试案例,计算得到测试语法模式;
125.第五计算单元7233,用于在所述语法库中寻找一个与所述测试语法模式相同的所述语法模式;
126.第一判定单元7234,用于判定若在所述语法库中存在一个所述语法模式与所述测试语法模式相同,则将所述相同的语法模式记为第一语法模式。
127.在本公开的一种具体实施方式中,所述第五计算单元7233,包括:
128.第二判定单元72331,用于判定若所述语法库中的多个所述语法模式均与所述测试语法模式不同,则判定所述测试案例的语法表述方式存在问题;
129.修正单元72332,用于将所述有问题的测试案例进行语句修正;
130.第六计算单元72333,用于根据修正后的所述测试案例,计算得到所述测试脚本。
131.在本公开的一种具体实施方式中,所述第二计算模73,包括:
132.第二调取单元731,用于调取所述解析数据和用户数据,所述解析数据包括行为需求数据和组件需求数据,所述用户数据为包含用户信息的数据;
133.第一构建单元732,用于构建原子组件库和原子行为库,所述原子组件库包括多个用于人机交互的交互单元,所述原子行为库包括多个原子行为数据,所述原子行为数据为反应所述交互单元的动作行为的数据;
134.第七计算单元733,用于根据所述行为需求数据,在所述原子行为库找到第一原子行为数据,所述第一原子行为数据为与所述行为需求数据对应的原子行为数据;
135.第八计算单元734,用于根据所述组件需求数据,在所述原子组件库找到第一原子组件,所述第一原子组件为与所述组件需求数据对应的交互单元数据;
136.第九计算单元735,用于根据所述第一原子行为数据、第一原子组件和用户数据,生成所述测试脚本。
137.在本公开的一种具体实施方式中,所述第一构建单元732,包括:
138.第二获取单元7321,用于获取多个软件页面,所述原子组件库包括多个子原子组件库;
139.第一创建单元7322,用于创建子库操作:调取一个所述软件页面,记为第一软件页
面,并分别获取位于所述第一软件页面上的每个交互单元的坐标数据和标识数据,然后根据所有所述交互单元的坐标数据和标识数据,生成一个子原子组件库;
140.第三调取单元7323,用于调取另一个未被调取的所述软件页面,重复执行所述创建子库操作,直至多个所述软件页面均被调取。
141.实施例3
142.相应于上面的方法实施例,本公开实施例还提供了一种测试脚本生成设备,下文描述的一种测试脚本生成设备与上文描述的一种测试脚本生成方法可相互对应参照。
143.图3是根据一示例性实施例示出的一种测试脚本生成设备800的框图。如图3所示,该电子设备800可以包括:处理器801,存储器802。该电子设备800还可以包括多媒体组件803,输入/输出(i/o)接口804,以及通信组件805中的一者或多者。
144.其中,处理器801用于控制该电子设备800的整体操作,以完成上述的测试脚本生成方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该电子设备800的操作,这些数据例如可以包括用于在该电子设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该电子设备800与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(near fieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:wi-fi模块,蓝牙模块,nfc模块。
145.在一示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digitalsignal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的测试脚本生成方法。
146.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的测试脚本生成方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由电子设备800的处理器801执行以完成上述的测试脚本生成方法。
147.实施例4
148.相应于上面的方法实施例,本公开实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种测试脚本生成方法可相互对应参照。
149.一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的测试脚本生成方法的步骤。
150.该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
151.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1