一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

测试用例生成方法、装置、存储介质和电子设备与流程

2022-03-19 16:02:13 来源:中国专利 TAG:


1.本技术实施例涉及计算机技术领域,尤其涉及一种测试用例生成方法、装置、存储介质和电子设备。


背景技术:

2.随着计算机技术和互联网的飞速发展,应用程序产品的迭代速度越来越快,移动终端应用程序的更新更是频繁。为了保证发布的应用程序产品可以正常运行,通常在应用程序产品发布之前对应用程序进行测试。对应用程序的测试过程通常包括针对ui(user interface,用户界面)交互逻辑进行测试。
3.由于不同的移动终端可能基于不同的操作系统平台运行,在开发同一产品的应用程序时,通常针对不同的操作系统平台开发不同的应用程序。例如,在开发一个游戏的应用程序时,会分别针对ios操作系统平台和android操作系统平台开发各自对应的应用程序。因此,在对应用程序的ui交互逻辑进行测试时,也需要针对不同的操作系统平台分别编写对应的测试用例,以对操作系统平台对应的应用程序进行测试。
4.由于应用程序中通常包含大量的ui交互逻辑,因此需要编写很多测试用例。相关技术中针对不同的操作系统平台分别编写测试用例,需要工作人员耗费大量时间,工作效率低。


技术实现要素:

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.图1为本技术实施例提供的一种测试用例生成方法的应用场景图;
32.图2为本技术实施例提供的一种测试用例生成方法的流程示意图;
33.图3为本技术实施例提供的一种具体实现方式的流程图;
34.图4为本技术实施例提供的一种登录界面的示意图;
35.图5为本技术实施例提供的另一种具体实现方式的流程图;
36.图6为本技术实施例提供的一种测试用例生成装置的结构示意图;
37.图7为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
38.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
39.需要说明的是,本技术的文件中涉及的术语“包括”和“具有”以及它们的变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
40.下面对文中出现的一些词语进行解释:
41.(1)键值对:用于表征终端设备应用程序页面控件的控件属性与控件属性值之间的一一对应关系。其中,控件是一种软件中逻辑函数的外在表现形式,在应用程序的操作界面上具有可视化的图标。用户触发控件对应的图标后,控件调用对应的逻辑函数执行相应的动作,如跳转页面等。
42.(2)测试用例:是为测试某个软件功能模块而编制的一组包括测试输入、执行条件以及预期结果的测试用例程序。本技术实施例中的测试用例用于对应用程序的ui交互逻辑进行测试,通过校验页面和控件变化判断测试结果。
43.下文中所用的词语“示例性”的意思为“用作例子、实施例或说明性”。作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
44.文中的术语“第一”、“第二”仅用于描述目的,而不能理解为明示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
45.为更好地理解本技术实施例提供的技术方案,下面对本技术实施例提供的技术方案提出的背景及适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本技术实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本技术实施例提供的技术方案。
46.随着计算机技术和互联网的飞速发展,应用程序产品的迭代速度越来越快,为了保证发布市场的应用程序产品可以正常运行,通常在应用程序产品发布之前对应用程序进行测试。为了满足应用程序产品敏捷开发、快速迭代带来的大量测试需求,对应用程序的自动化测试逐渐流行。对应用程序的自动化测试包括针对应用程序的ui交互逻辑的自动化测
试。对应用程序的ui交互逻辑进行测试,可以通过校验页面和控件变化来判断测试结果。
47.由于不同的移动终端可能基于不同的操作系统平台运行,在开发同一产品的应用程序时,通常针对不同的操作系统平台开发不同的应用程序。相关技术中,在对同一产品的不同操作系统平台对应的应用程序的ui交互逻辑进行自动化测试时,通常需要针对不同的操作系统平台分别编写测试用例,以对操作系统平台对应的应用程序进行测试。例如,在ios操作系统平台和android操作系统平台上对同一款游戏的应用程序的ui交互逻辑进行自动化测试时,需要针对ios操作系统平台和android操作系统平台分别编写测试用例,以对ios操作系统平台和android操作系统平台上的该款游戏的应用程序进行测试。
48.以对ios操作系统平台编写测试用例来实现ui交互逻辑的自动化测试为例进行说明:首先,确定应用程序的每个ui页面中的控件属性,具体地,通过定位工具可以查看到应用程序当前的每个页面中的控件属性,每个控件的控件属性可以包括:该控件的类型(type),类名(classname)、属性值(value)、标签(label)、控件的坐标、控件的宽高参数等等。
49.在得到控件的控件属性后,可以通过ui接口定位控件的实例对象,用于查找实例对象的ui接口需要使用控件属性作为参数特征,才能在当前的ui页面中匹配到待查找的控件的实例对象。例如,可以通过类名为“switch”、标签为“新消息通知”作为参数特征,使用find接口函数精准定位到ui页面中新消息通知对应的开关按钮的实例对象。
50.在定位到控件的实例对象后,可以通过操控接口来操作控件,对控件的操作类似于手动的操作,如滑动、点击、输入、拉伸等等。例如,在定位到新消息通知对应的开关按钮的实例对象后,可以通过click接口函数来点击该开关按钮,进而做到模拟人力对这个开关按钮进行操作,打开或者关闭新消息通知。通过上述步骤可以生成测试用例,实现对每一个控件进行操作,通过一定的顺序和逻辑串联起来构成一个完整的ui操作流程,替代人力进行自动化操作。
51.通常情况下,程序测试工作人员按照上述流程编写测试用例会耗费大量时间。针对同一产品的不同操作系统平台的应用程序分别编写测试用例需要花费双倍的时间,工作效率很低。例如,在ios操作系统平台上针对某一款游戏应用程序的ui交互逻辑进行自动化测试需要编写一个1000条的测试用例,编写这些测试用例需要花费工作人员2个月的时间,在android操作系统平台上针对同一游戏应用程序的ui交互逻辑进行自动化测试也需要编写一个1000条的测试用例,同样需要花费工作人员2个月的时间,则完成ios操作系统平台和android操作系统平台两个操作系统平台的测试用例编写共需要花费工作人员4个月的时间。并且在完成测试用例的编写后,还需要对测试用例进行维护,对测试用例中出现错误的地方进行查找和修改,又需要耗费工作人员大量的时间。
52.为了节约生成测试用例的时间,提高工作效率,本技术提供了一种测试用例生成方法。本技术实施例提供的测试用例生成方法,可以由用于进行应用程序测试或用于生成测试用例的电子设备执行。该电子设备可以是服务器,也可以是计算机或其他具有计算功能的设备。例如,电子设备上安装有生成测试用例的应用。用户可以通过该应用编写测试用例,或者通过该应用基于已有测试用例生成测试用例。具体地,用户可以指定已有测试用例作为基础测试用例,并指定需要生成的目标测试用例需适用的第一操作系统平台。上述基础测试用例可以是适用于其他操作系统平台的测试用例或者各个操作系统平台共用的测
试用例模板。电子设备获取基础测试用例,确定待生成的目标测试用例需适用的第一操作系统平台,将基础测试用例的设定类型操作接口中的原始控件属性信息替换为适用于第一操作系统平台的目标控件属性信息,得到目标测试用例。该方法可以节约不同操作系统平台测试用例编写的时间,提高测试用例编写的速度和工作效率。
53.在一些实施例中,本技术实施例提供的测试用例生成方法,也可以应用于图1所示的应用场景中。参见图1所示,该应用场景中包括多个终端设备11和服务器12。终端设备11与服务器12之间可以通过有线连接方式或无线连接方式进行连接并传输数据。例如,终端设备11与服务器12可以通过数据线连接或者通过有线网络连接;终端设备11与服务器12也可以通过射频模块、wifi模块或者无线网络连接。
54.其中,终端设备11可以是计算机、笔记本、掌上电脑(personal digital assistant,pda)、平板电脑等。服务器12可以是一台服务器或由若干台服务器组成的服务器集群或云计算中心,或者是一个虚拟化平台,也可以是个人计算机、大中型计算机或计算机集群等。根据实现需要,本技术实施例中的应用场景中可以具有任意数目的终端设备和服务器。本技术对此不做特殊限定。本技术实施例提供的测试用例生成方法可以由服务器12执行,也可以由终端设备11和服务器12协作执行。
55.例如,某个应用程序开发机构设置有一台服务器12,用于对测试程序进行测试,同时也可以生成测试用例。在该开发机构内部的各个实验室均设置有终端设备11。程序测试工作人员可以通过自己实验室的终端设备11将编写的测试用例或测试用例模板传输至服务器12,服务器12可以汇集不同程序测试工作人员编写的多个测试用例或测试用例模板,从汇集的测试用例或测试用例模板中获取基础测试用例,并基于基础测试用例生成目标测试用例。为进一步说明本技术实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本技术实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在该方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本技术实施例提供的执行顺序。该方法在实际的处理过程中或者装置执行时,可按照实施例或者附图所示的方法顺序执行或者并行执行。
56.图2示出了本技术实施例提供的一种测试用例生成方法的流程图,该方法可以由图1中的服务器12执行,也可以由终端设备11或其它电子设备执行。示例性地,下文以用于测试用例的计算机作为执行主体,说明本技术实施例的测试用例生成方法的具体实现过程。如图2所示,该测试用例生成方法包括如下步骤:
57.步骤s201,获取基础测试用例。
58.获取到的基础测试用例可以为适用于除下述第一操作系统平台之外的其他操作系统平台,如第二操作系统平台的测试用例,也可以为针对同一产品的应用程序建立的测试用例模板。
59.步骤s202,确定待生成的目标测试用例需适用的第一操作系统平台。
60.在一些实施例中,上述步骤s202与步骤s201的顺序可以调换,即步骤s202也可以在步骤s201之前执行。
61.具体地说,计算机上安装有生成测试用例的应用,并保存有已有测试用例或已有测试用例模板。启动该应用后,用户可以从已有测试用例或已有测试用例模板中选择基础
测试用例,并指定需要生成的目标测试用例需适用的第一操作系统平台。计算机接收用户输入的目标测试用例需适用的第一操作系统平台,并获取用户选择的基础测试用例。
62.步骤s203,将基础测试用例的设定类型操作接口中的原始控件属性信息替换为适用于第一操作系统平台的目标控件属性信息,得到目标测试用例。
63.在一些实施例中,可以根据已建立的各个操作系统平台的控件属性信息之间的对应关系,将设定类型操作接口中的原始控件属性信息替换为与原始控件属性信息相对应的目标控件属性信息。
64.其中,各个操作系统平台的控件属性信息之间的对应关系是预先建立的。建立该对应关系时,先分别从适用于各个操作系统平台的应用程序中,查找用于表征各个控件的控件属性和控件属性值,然后对于每个控件,将控件的控件属性和控件属性值组成该控件对应的键值对,最后根据各个控件的控件标识及对应的键值对,建立在各个操作系统平台中用于表征相同控件的控件属性信息之间的对应关系。
65.在一种可选的实施例中,基础测试用例为适用于第二操作系统平台的测试用例,该基础测试用例的设定类型操作接口中的原始控件属性信息可以包括适用于第二操作系统平台的应用程序中的控件对应的键值对,根据已建立的第一操作系统平台的控件属性信息之间的对应关系和第二操作系统平台的控件属性信息之间的对应关系,可以将该基础测试用例的搜索控件操作接口中的适用于第二操作系统平台的键值对替换为相对应的适用于第一操作系统平台的键值对。
66.在另一种可选的实施例中,基础测试用例为针对应用程序建立的测试用例模板,该基础测试用例的设定类型操作接口中的原始控件属性信息应该包括控件标识,根据已建立的第一操作系统平台的控件属性信息之间的对应关系,可以将该测试用例模板的搜索控件操作接口中的控件标识替换为相对应的适用于第一操作系统平台的键值对。
67.本技术实施例提供的测试用例生成方法,在获取到已有的基础测试用例的基础上,确定待生成的目标测试用例需适用的第一操作系统平台,然后将基础测试用例的搜索控件操作接口中的原始控件属性信息替换为适用于第一操作系统平台的目标控件属性信息,得到目标测试用例。通过上述方法,无需工作人员针对不同操作系统平台分别编写测试用例,可以加快生成测试用例的速度,节约生成不同操作系统平台测试用例的时间,提高工作效率。
68.下文通过两个具体实现方式,说明本技术实施例提供的测试用例生成方法与相关技术的区别及效果。
69.仍以ios操作系统平台和android操作系统平台为例进行说明。相关技术中,对同一产品在ios操作系统平台和android操作系统平台的登录页面分别编写一个测试用例,该登录页面可以如图4所示,在两个操作系统平台上,该登录页面均包括账号控件、密码控件和登录控件,所实现的功能都是:分别通过账号控件和密码控件接收用户输入的账号和密码,然后根据用户点击登录控件的操作进行登录。
70.针对ios操作系统平台的登录页面编写测试用例的过程如下:ios操作系统平台使用的账号控件为“name=账号”,其中,“name”为账号控件的控件属性,“账号”为账号控件的控件属性值。编写找到账号控件的程序代码语句为“account=findelementbyname('帐号')”,ios操作系统平台使用的输入类型接口为inputelementuseios,假设测试用例中用
该输入类型接口输入的账号为12345678901@qq.com,则编写输入账号的程序代码语句为inputelementuseios(account,“12345678901@qq.com”),ios操作系统平台使用的密码控件为“name=密码”,其中,“name”为密码控件的控件属性,“密码”为密码控件的控件属性值。编写找到密码控件的程序代码语句为“password=findelementbyname('密码')”,假设测试用例中用上述输入类型接口输入的密码为123456”,则编写输入密码的程序代码语句为inputelementuseios(password,“123456”),ios操作系统平台使用的登录控件为“accessbilityid=login”,其中,“accessbilityid”为登录控件的控件属性,“login”为登录控件的控件属性值。编写找到登录控件的程序代码语句为“login=findelementbyaccessbilityid('login')”,ios操作系统平台使用的点击接口为clickelementuseios,编写进行点击登录的程序代码语句为clickelementuseios(login)。通过上述步骤,可以完成测试用例的编写,得到下述针对ios操作系统平台的测试用例:
71.//ios
72.1、使用name=账号,找到账号输入控件
73.account=findelementbyname('帐号')
74.2、使用ios接口输入账号12345678901@qq.com
75.inputelementuseios(account,“12345678901@qq.com”)
76.3、使用name=密码,找到密码输入控件
77.password=findelementbyname('密码')
78.4、使用ios接口输入密码123456
79.inputelementuseios(password,“123456”)
80.5、使用accessbilityid=login,找到登录按钮
81.login=findelementbyaccessbilityid('login')
82.6、使用ios接口进行点击登录
83.clickelementuseios(login)
84.针对android操作系统平台的登录页面编写测试用例的过程如下:android操作系统平台使用的账号控件为“id=accountname”,其中,“id”为账号控件的控件属性,“accountname”为账号控件的控件属性值。编写找到账号控件的程序代码语句为“account=findelementbyid('accountname')”,android操作系统平台使用的输入类型接口为inputelementuseandroid,假设测试用例中用该输入类型接口输入的账号为12345678901@qq.com,则编写输入账号的程序代码语句为inputelementuseandroid(account,“12345678901@qq.com”),android操作系统平台使用的密码控件为“classname=inputtext”,其中,“classname”为密码控件的控件属性,“inputtext”为密码控件的控件属性值。编写找到密码控件的程序代码语句为“password=findelementbyclassname('inputtext')”,假设测试用例中用上述输入类型接口输入的密码为123456,则编写输入密码的程序代码语句为inputelementuseandroid(password,“123456”),android操作系统平台使用的登录控件为“id=login”,其中,“id”为登录控件的控件属性,“login”为登录控件的控件属性值。编写找到登录控件的程序代码语句为“login=findelementbyid('login')”,android操作系统平台使用的点击接口为clickelementuseandroid,编写进行点击登录的程序代码语句为clickelementuseandroid(login)。通过上述步骤,可以完成测试
用例的编写,得到下述针对android操作系统平台的测试用例:
85.//android
86.1、使用id=accountname,找到账号输入控件
87.account=findelementbyid('accountname')
88.2、使用android接口输入账号12345678901@qq.com
89.inputelementuseandroid(account,“12345678901@qq.com”)
90.3、使用classname=inputtext,找到密码输入控件
91.password=findelementbyclassname('inputtext')
92.4、使用android接口输入密码123456
93.inputelementuseandroid(password,“123456”)
94.5、使用id=login,找到登录按钮
95.login=findelementbyid('login')
96.6、使用android接口进行点击登录
97.clickelementuseandroid(login)
98.由上述描述可知,相关技术中,针对ios操作系统平台和android操作系统平台,相同控件的控件属性、控件属性值不同,用于实现相同功能的操作接口也不相同,因此需要针对不同的操作系统平台分别编写测试用例。
99.在本技术实施例中,可以将ios操作系统平台和android操作系统平台中的各个控件的控件属性和控件属性值组成该控件对应的键值对,根据各个控件的控件标识及对应的键值对,建立在ios操作系统平台和android操作系统平台中用于表征相同控件的控件属性信息之间的对应关系。
100.例如,对于上述的账号控件,将ios操作系统平台中的账号控件的控件属性“name”和控件属性值“账号”组成账号控件对应的键值对:'name':'帐号',将android操作系统平台中账号控件的控件属性“id”和控件属性值“accountname”组成账号控件对应的键值对:'id':'accountname'。根据该控件的控件标识“帐号控件”及对应的键值对,可以得到ios操作系统平台和android操作系统平台中用于表征帐号控件的控件属性信息之间的对应关系为:
[0101]“帐号控件”={'name':'帐号','id':'accountname'}。
[0102]
同理,可以得到ios操作系统平台和android操作系统平台中用于表征密码控件和登录控件的控件属性信息之间的对应关系分别为:
[0103]“密码控件”={'name':'密码','classname':'inputtext'}
[0104]“登录控件”={'accessbilityid':'login','id':'login'}。
[0105]
在建立上述控件属性信息之间的对应关系时,可以预先设定对应关系中的第一列键值对为ios操作系统平台对应的键值对,第一列键值对为android操作系统平台对应的键值对。
[0106]
在一些实施例中,为了更方便查找不同操作系统平台对应的键值对,在建立控件属性信息之间的对应关系时,可以在每个键值对前面设置对应的平台标识。即根据各个操作系统平台的平台标识、各个控件的控件标识及对应的键值对,建立的在不同操作系统平台中用于表征相同控件的控件属性信息之间的对应关系。示例如下:
[0107]“帐号控件”={ios:'name':'帐号',android:'id':'accountname'}
[0108]“密码控件”={ios:'name':'密码',android:'classname':'inputtext'}
[0109]“登录控件”={ios:'accessbilityid':'login',android:'id':'login'}
[0110]
其中,ios:'name':'帐号'表示'name':'帐号'为ios操作系统平台对应的键值对,android:'id':'accountname'表示'id':'accountname'为android操作系统平台对应的键值对。
[0111]
在相关技术中,针对ios操作系统平台和android操作系统平台,实现相同的接口功能所采用操作接口并不相同。例如,用于实现输入功能的输入类型接口,ios操作系统平台中使用的是inputelementuseios,而android操作系统平台中使用的是inputelementuseandroid。
[0112]
在本技术实施例中,为了方便实现两个操作系统平台之间的测试用例相互转换,统一ios操作系统平台和android操作系统平台的操作接口,即在实现相同的接口功能时,针对两个操作系统平台采用相同的操作接口。例如,将搜索控件操作接口统一为findelement(string),将输入类型接口统一为inputelement(element,content),将点击接口统一为clickelement(element)。
[0113]
基于上述设置,在一个具体实施例中,测试用例生成方法的执行过程可以如图3所示,包括如下步骤:
[0114]
步骤s301,获取适用于第二操作系统平台的测试用例作为基础测试用例。
[0115]
上文中已经记载,基础测试用例可以是用户输入的,或者是根据用户的选择获取的测试用例,在本实施例中,获取到的基础测试用例为适用于第二操作系统平台的测试用例。
[0116]
步骤s302,确定待生成的目标测试用例需适用的第一操作系统平台。
[0117]
第一操作系统平台与第二操作系统平台不同。例如,第一操作系统平台可以是android操作系统平台,第二操作系统平台可以是ios操作系统平台;或者,第一操作系统平台可以是ios操作系统平台,第二操作系统平台可以是android操作系统平台。
[0118]
步骤s303,将第二操作系统平台的测试用例的设定类型操作接口中的原始控件属性信息替换为适用于第一操作系统平台的目标控件属性信息,得到目标测试用例。
[0119]
在一些实施例中,在实现相同的接口功能时,适用于各个操作系统平台的测试用例采用相同的操作接口。因此,在将适用于第二操作系统平台的测试用例转换为适用于第一操作系统平台的测试用例时,不需要修改操作接口,只将第二操作系统平台的测试用例的设定类型操作接口中的原始控件属性信息替换为适用于第一操作系统平台的目标控件属性信息,即可得到目标测试用例。其中,设定类型操作接口可以是搜索控件操作接口。
[0120]
具体地,基础测试用例中的设定类型操作接口中的原始控件属性信息为适用于第二操作系统平台的应用程序中的控件对应的键值对,可以根据已建立的各个操作系统平台的控件属性信息之间的对应关系,将适用于第二操作系统平台的测试用例的搜索控件操作接口中的键值对替换为相对应的适用于第一操作系统平台的键值对。
[0121]
下面以第一操作系统平台为android操作系统平台,第二操作系统平台为ios操作系统平台为例进行说明。例如,用户针对ios操作系统平台编写一个测试用例如下:
[0122]
account=findelement('name':'帐号')
[0123]
inputelement(account,“12345678901@qq.com”)
[0124]
password=findelement('name':'密码')
[0125]
inputelement(password,“123456”)
[0126]
login=findelement('accessbilityid':'login')
[0127]
clickelement(login)。
[0128]
用户将该测试用例指定为基础测试用例,并指定将该基础测试用例转换为适用于android操作系统平台的测试用例。计算机接收到用户指令后,首先确定基础测试用例中包含的搜索控件操作接口,然后依次将每个搜索控件操作接口中的键值对替换为相对应的android操作系统平台的键值对。
[0129]
在一些实施例中,根据基础测试用例中的第一个搜索控件操作接口findelement('name':'帐号')中的键值对'name':'帐号',从预先建立的控件属性信息的对应关系中,可以查找到键值对'name':'帐号',对应的android操作系统平台的键值对为'id':'accountname';或者,根据基础测试用例中的第一个搜索控件操作接口对应的对象“account”,可以确定“account”对应的控件的控件标识为“帐号控件”,从预先建立的控件属性信息的对应关系中,可以查找到控件标识“帐号控件”对应的android操作系统平台的键值对为'id':'accountname'。从而将基础试用例中的第一个搜索控件操作接口findelement('name':'帐号')中的键值对'name':'帐号'替换为android操作系统平台的键值对'id':'accountname'。
[0130]
同理,可以将基础试用例中的第二个搜索控件操作接口findelement('name':'密码')中的键值对'name':'密码'替换为android操作系统平台的键值对'classname':'inputtext'。将基础试用例中的第三个搜索控件操作接口findelement('accessbilityid':'login')中的键值对'accessbilityid':'login'替换为android操作系统平台的键值对'id':'login'。
[0131]
在另一些实施例中,计算机确定需要生成的目标测试用例需适用的操作系统平台为android操作系统平台后,可以从预先建立的控件属性信息的对应关系中,获取android操作系统对应的所有键值对,如“帐号控件”={'id':'accountname'},密码控件”={'classname':'inputtext'},“登录控件”={'id':'login'}。然后根据基础测试用例中的第一个搜索控件操作接口对应的对象“account”,可以确定“account”对应的控件的控件标识为“帐号控件”,从获取的android操作系统对应的键值对中,可以查找到控件标识“帐号控件”对应的android操作系统平台的键值对为'id':'accountname'。同理,可以确定“password”对应的控件的控件标识为“密码控件”,“login”对应的控件的控件标识为“登录控件”。从获取的android操作系统对应的键值对中,可以查找到控件标识“密码控件”对应的键值对为'classname':'inputtext',控件标识“登录控件”对应的键值对为'id':'login'。从而可以将基础测试用例中每个搜索控件操作接口中的键值对替换为相对应的android操作系统平台的键值对。
[0132]
通过上述步骤,可以生成适用于android操作系统平台的目标测试用例,生成的目标测试用例如下:
[0133]
account=findelement('id':'accountname')
[0134]
inputelement(account,“12345678901@qq.com”)
[0135]
password=findelement('classname':'inputtext')
[0136]
inputelement(password,“123456”)
[0137]
login=findelement('id':'login')
[0138]
clickelement(login)。
[0139]
在一些实施例中,用户可以先批量编写针对ios操作系统平台的测试用例,然后可以同时选择多个测试用例作为基础测试用例,指定目标测试用例适用的操作系统平台为android操作系统平台。计算机即可通过上述方法,针对用户选择的多个测试用例,分别生成对应的可以适用于android操作系统平台的测试用例,无需用户再编写针对android操作系统平台的测试用例。
[0140]
用户也可以先批量编写针对android操作系统平台的测试用例,然后可以同时选择多个测试用例作为基础测试用例,指定目标测试用例适用的操作系统平台为ios操作系统平台。计算机即可通过上述方法,针对用户选择的多个测试用例,分别生成对应的可以适用于ios操作系统平台的测试用例,无需用户再编写针对ios操作系统平台的测试用例。因此,可以加快生成测试用例的速度,节约生成不同操作系统平台测试用例的时间,提高工作效率。
[0141]
在另一个具体实施例中,测试用例生成方法的执行过程可以如图5所示,包括如下步骤:
[0142]
步骤s501,获取针对应用程序建立的测试用例模板作为基础测试用例。
[0143]
在本实施例中,获取到的基础测试用例为针对应用程序建立的测试用例模板。
[0144]
步骤s502,确定待生成的目标测试用例需适用的第一操作系统平台。
[0145]
第一操作系统平台可以是android操作系统平台,也可以是ios操作系统平台。
[0146]
步骤s503,将测试用例模板的设定类型操作接口中的原始控件属性信息替换为适用于第一操作系统平台的目标控件属性信息,得到目标测试用例。
[0147]
在一些实施例中,在实现相同的接口功能时,适用于各个操作系统平台的测试用例采用相同的操作接口。因此,在将测试用例模板转换为适用于第一操作系统平台的测试用例时,不需要修改操作接口,只将测试用例模板的设定类型操作接口中的原始控件属性信息替换为适用于第一操作系统平台的目标控件属性信息,即可得到目标测试用例。其中,设定类型操作接口可以是搜索控件操作接口。
[0148]
具体地,基础测试用例中的设定类型操作接口中的原始控件属性信息为控件标识,可以根据已建立的各个操作系统平台的控件属性信息之间的对应关系,将测试用例模板的搜索控件操作接口中的控件标识替换为相对应的适用于第一操作系统平台的键值对。
[0149]
下面以第一操作系统平台为android操作系统平台为例进行说明。例如,用户可以编写一个测试用例模板如下:
[0150]
account=findelement(

账号控件’)
[0151]
inputelement(account,“12345678901@qq.com”)
[0152]
password=findelement(

密码控件’)
[0153]
inputelement(password,“123456”)
[0154]
login=findelement(

登录控件’)
[0155]
clickelement(login)。
[0156]
用户将该测试用例模板指定为基础测试用例,并指定将该基础测试用例转换为适用于android操作系统平台的测试用例。计算机接收到用户指令后,首先确定基础测试用例中包含的搜索控件操作接口,然后依次将每个搜索控件操作接口中的控件标识替换为相对应的android操作系统平台的键值对。
[0157]
在一些实施例中,根据基础测试用例中的第一个搜索控件操作接口findelement(

账号控件’)中的控件标识

账号控件’,从预先建立的控件属性信息的对应关系中,可以查找到对应的android操作系统平台的键值对为'id':'accountname'。从而将基础测试用例中的第一个搜索控件操作接口findelement(

账号控件’)中的控件标识替换为android操作系统平台的键值对'id':'accountname'。
[0158]
同理,可以将基础试用例中的第二个搜索控件操作接口findelement(

密码控件’)中的控件标识

密码控件’替换为android操作系统平台的键值对'classname':'inputtext'。将基础试用例中的第三个搜索控件操作接口findelement('登录控件')中的控件标识'登录控件'替换为android操作系统平台的键值对'id':'login'。
[0159]
通过上述步骤,可以生成适用于android操作系统平台的目标测试用例,生成的目标测试用例如下:
[0160]
account=findelement('id':'accountname')
[0161]
inputelement(account,“12345678901@qq.com”)
[0162]
password=findelement('classname':'inputtext')
[0163]
inputelement(password,“123456”)
[0164]
login=findelement('id':'login')
[0165]
clickelement(login)
[0166]
在一些实施例中,第一操作系统平台也可以为ios操作系统平台,用户在编写测试用例模板后,将该测试用例模板指定为基础测试用例,并指定将该基础测试用例转换为适用于ios操作系统平台的测试用例。计算机接收到用户指令后,首先确定基础测试用例中包含的搜索控件操作接口,然后依次将每个搜索控件操作接口中的控件标识替换为相对应的ios操作系统平台的键值对,就可以生成ios系统的目标测试用例。生成的目标测试用例如下:
[0167]
account=findelement('name':'帐号')
[0168]
inputelement(account,“12345678901@qq.com”)
[0169]
password=findelement('name':'密码')
[0170]
inputelement(password,“123456”)
[0171]
login=findelement('accessbilityid':'login')
[0172]
clickelement(login)。
[0173]
在上述实施例中,以两个操作系统平台为例说明采用本技术实施例提供的方法生成测试用例的过程。在另一些实施例中,也可以采用本技术实施例提供的测试用例生成方法在多个操作系统平台之间进行测试用例转换,生成所需要的测试用例。例如,操作系统平台可以包括ios操作系统平台、android操作系统平台、mac端的操作系统平台、pc端的操作系统平台等操作系统平台中的多个。例如,操作系统平台可以包括ios操作系统平台、android操作系统平台和pc端的操作系统平台3个操作系统平台,在建立控件属性信息之间
的对应关系时,可以建立上述3个操作系统平台中用于表征相同控件的控件属性信息之间的对应关系。示例性地,账号控件的控件属性信息之间的对应关系可以表示为:“账号控件”={ios:'name':'帐号',android:'id':'accountname',pc:'name':'用户名'}。各个操作系统平台测试用例的生成过程可以参照上述ios系统和android系统的测试用例生成过程,这里不再赘述。
[0174]
与图2所示的测试用例生成方法基于同一发明构思,本技术实施例中还提供了一种测试用例生成装置。由于该装置是本技术测试用例生成方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见上述方法的实施,重复之处不再赘述。
[0175]
图6示出了本技术实施例提供的一种测试用例生成装置的结构示意图,如图6所示,该测试用例生成装置包括用例获取单元601、平台确定单元602和信息替换单元603。
[0176]
其中,用例获取单元601,用于获取基础测试用例;
[0177]
平台确定单元602,用于确定待生成的目标测试用例需适用的第一操作系统平台;
[0178]
信息替换单元603,用于将基础测试用例的设定类型操作接口中的原始控件属性信息替换为适用于第一操作系统平台的目标控件属性信息,得到目标测试用例。
[0179]
在一种可选的实施例中,信息替换单元603,具体用于:
[0180]
根据已建立的各个操作系统平台的控件属性信息之间的对应关系,将设定类型操作接口中的原始控件属性信息替换为与原始控件属性信息相对应的目标控件属性信息。
[0181]
在一种可选的实施例中,信息替换单元603,还用于:
[0182]
分别适用于从各个操作系统平台的应用程序中,查找用于表征各个控件的控件属性和控件属性值;
[0183]
对于每个控件,将控件的控件属性和控件属性值组成该控件对应的键值对;
[0184]
根据各个控件的控件标识及对应的键值对,建立在各个操作系统平台中用于表征相同控件的控件属性信息之间的对应关系。
[0185]
在一种可选的实施例中,基础测试用例为适用于第二操作系统平台的测试用例;原始控件属性信息包括适用于第二操作系统平台的应用程序中的控件对应的键值对;信息替换单元603,还用于:
[0186]
将基础测试用例的搜索控件操作接口中的适用于第二操作系统平台的键值对替换为相对应的适用于第一操作系统平台的键值对。
[0187]
在一种可选的实施例中,基础测试用例为针对应用程序建立的测试用例模板,原始控件属性信息包括控件标识;信息替换单元603,还用于:
[0188]
将测试用例模板的搜索控件操作接口中的控件标识替换为相对应的适用于第一操作系统平台的键值对。
[0189]
在一种可选的实施例中,在实现相同的接口功能时,适用于各个操作系统平台的测试用例采用相同的操作接口。
[0190]
与上述方法实施例基于同一发明构思,本技术实施例中还提供了一种电子设备。该电子设备可以用于测试用例生成。在一种实施例中,该电子设备可以是服务器,也可以是终端设备或其他电子设备。在该实施例中,电子设备的结构可以如图7所示,包括存储器101,通讯模块103以及一个或多个处理器102。
[0191]
存储器101,用于存储处理器102执行的计算机程序。存储器101可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
[0192]
存储器101可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);存储器101也可以是非易失性存储器(non-volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd)、或者存储器101是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器101可以是上述存储器的组合。
[0193]
处理器102,可以包括一个或多个中央处理单元(central processing unit,cpu)或者为数字处理单元等等。处理器102,用于调用存储器101中存储的计算机程序时实现上述测试用例生成方法。
[0194]
通讯模块103用于与终端设备和其他电子设备进行通信。
[0195]
本技术实施例中不限定上述存储器101、通讯模块103和处理器102之间的具体连接介质。本公开实施例在图7中以存储器101和处理器102之间通过总线104连接,总线104在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线104可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0196]
根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的测试用例生成方法。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0197]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0198]
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码
的介质。
[0199]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献