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

WPF应用程序的UI测试方法、装置及电子设备与流程

2022-04-27 03:33:14 来源:中国专利 TAG:

wpf应用程序的ui测试方法、装置及电子设备
技术领域
1.本技术属于终端设备技术领域,具体涉及一种wpf应用程序的ui测试方法、装置及电子设备。


背景技术:

2.视窗操作系统(windows)呈现基础(windows presentation foundation,wpf)主要负责图形显示,用于创建独立的wpf应用程序以及浏览器承载的wpf应用程序。wpf应用程序是由后台代码和用户界面(user interface,ui)构成的,这样就把ui和后台代码最大程度上分离开了,由于wpf由于是主要负责的是图形显示,因此wpf应用程序的ui的界面效果较佳。
3.在一些场景下,对wpf应用程序的ui进行测试是采用通用型ui测试框架,通用型ui测试框架通用于各种类型的应用程序的ui测试,通用型ui测试框架虽然能满足wpf应用程序ui的部分测试,但是在一些情况下,通用型ui测试框架对wpf应用程序的ui测试存在诸多限制,灵活性较差,依然无法完成对wpf应用程序的ui测试。


技术实现要素:

4.本技术实施例提供一种wpf应用程序的ui测试方法、装置及电子设备,能够解决通用型ui测试框架的灵活性差,无法完成对wpf应用程序的ui测试的问题。
5.第一方面,本技术实施例提供了一种wpf应用程序的ui测试方法,包括:
6.启动wpf应用程序;从所述wpf应用程序的源码中获取所述wpf应用程序的application对象;基于所述application对象从所述源码中确定目标ui;对所述目标ui中的至少一个元素进行测试,所述至少一个元素为所述源码中的控件对象。
7.第二方面,本技术实施例提供了一种wpf应用程序的ui测试装置,包括:
8.启动模块,用于启动wpf应用程序;获取模块,用于从所述wpf应用程序的源码中获取所述wpf应用程序的application对象;确定模块,用于基于所述application对象从所述源码中确定目标ui;测试模块,用于对所述目标ui中的至少一个元素进行测试,所述至少一个元素为所述源码中的控件对象。
9.第三方面,本技术实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的wpf应用程序的ui测试方法的步骤。
10.第四方面,本技术实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的wpf应用程序的ui测试方法的步骤。
11.第五方面,本技术实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的wpf应用程序的ui测试方法。
文件。其中,app.xaml文件是对application对象的设置,其可以设置wpf应用程序的起始文件和资源,app.xaml.cs文件是app.xaml文件的后台文件,用于描述wpf应用程序,window1.xaml文件是wpf应用程序的ui的xmal设计文件,window1.xaml.cs文件是window1.xaml文件的后台文件,是wpf应用程序的ui的实现类。
25.启动wpf应用程序时,可以由用户通过双击wpf应用程序的应用图标进行启动,或者可以直接从源码中调用wpf应用程序的启动程序,通过启动程序启动wpf应用程序。
26.具体来讲,wpf应用程序的应用图标可以呈现在万维网(world wide web,web)页面或者作为独立的应用程序呈现在终端设备的桌面上,用户可以通过鼠标双击或单击等作为第一输入来操作wpf应用程序的应用图标,终端设备响应于该第一输入调用源码中的启动程序启动wpf应用程序,也可以直接从源码中调用wpf应用程序的启动程序来启动wpf应用程序。源码是wpf应用程序的底层代码,该底层代码用于实现wpf应用程序的ui和wpf应用程序的功能,源码中包含了wpf应用程序的启动程序、退出程序和实现wpf应用程序的其余功能的程序。
27.步骤s103:从wpf应用程序的源码中获取wpf应用程序的application对象。
28.具体来讲,application对象的主要功能是用来存储和获取可以被所有用户之间共享的信息,其具有集合、ui和事件。对于wpf应用程序而言,其往往由多个asp文件构成,asp文件相当于整个应用程序的子程序,彼此不是完全独立的,各个子程序之间存在某种关系,而application对象是负责将整个应用程序的各个子程序进行管理,并对应用程序的整个周期的设置进行控制。在获取到wpf应用程序的application对象之后,则对应可以获取到wpf应用程序中包含的所有的ui(窗口)、集合和事件。
29.步骤s105:基于application对象从源码中确定目标ui。
30.具体来讲,目标ui是源码中wpf应用程序的application对象中包含的多个ui中的至少一个ui,从多个ui中选取目标ui时可以按照窗口管理链表中的ui的层级确定,也可以按照ui的创建时间选取。例如,在确定目标ui时,通过窗口管理链表中的窗口层级关系将最上层的ui确定为目标ui。或者,按照ui的创建时间,将最早创建的ui确定为目标ui。
31.步骤s107:对目标ui中的至少一个元素进行测试,至少一个元素为源码中的控件对象。
32.具体来讲,目标ui中的元素指的是源码中的控件对象,该控件对象可以为目标ui中的控件,例如,控件对象可以为输入控件(如文本框)、设置目标ui的属性的控件,目标ui的属性包括但不限于caption(ui标题栏文字)属性、picture(ui背景)属性、locn(图标)属性、maxbutton(ui最大化按钮)属性、minbutton(ui最小化按钮)属性、control(控制)属性、borderstyle(ui边框样式)属性、width(ui的宽度)属性和height(ui的高度)属性。
33.对目标ui中的至少一个元素进行测试可以是随机对目标ui中的任意一个或多个元素进行测试,在对目标ui中的元素进行测试时,是目标ui中的控件对象进行测试的测试操作包括但不限于:点击操作、输入操作、检查操作、判断操作以及赋值操作等。
34.例如,对控件对象进行测试的测试操作为赋值操作和判断操作时,在控件对象(如输入框)中输入文本,判断输入控件中输入的文本是否是预设的输入文本,如果是,则测试结果为正确,如果不是,则测试结果为错误。
35.本技术实施例提供的wpf应用程序的ui测试方法,能够调用源码的方式对wpf应用
程序的ui进行测试,可以非常灵活对ui进行测试,不存在抓取不到ui中元素的问题,提高了wpf应用程序的ui测试的灵活性,wpf应用程序的ui测试的限制性小,从而完成对wpf应用程序的ui测试。此外,从wpf应用程序的源码中操作ui,无需模拟鼠标和键盘的操作,避免操作系统的其他程序对操作ui产生影响。
36.在一种可能的实现方式中,对目标ui中的至少一个元素进行测试包括以下至少一项:通过在至少一个控件对象中的填写数据对控件对象进行测试;通过设置至少一个控件对象的属性信息对控件对象进行测试;通过触发目标事件对控件对象进行测试,目标事件包括登录目标ui、展开下拉框和退出目标ui中的至少一者。
37.具体来讲,控件对象中填写数据指的是在控件对象执行赋值操作而输入的数据,首先在控件对象中执行赋值操作输入填写数据,然后再从控件对象中获取填写数据,测试从控件对象中获取的填写数据与控件对象中输入的填写数据是否匹配。控件对象的属性信息包括但不限于caption(ui标题栏文字)属性、picture(ui背景)属性、locn(图标)属性、maxbutton(ui最大化按钮)属性、minbutton(ui最小化按钮)属性、control(控制)属性、borderstyle(ui边框样式)属性、width(ui的宽度)属性和height(ui的高度)属性,首先对控件对象的以上至少一种属性信息进行设置,再获取以上控件对象的至少一种属性信息,执行判断操作判断获取到的控件对象的至少一种属性信息和设置的至少一种属性信息是否匹配。目标事件指的是在源码中触发登录ui界面、触发退出ui界面以及触发下拉框点击展开等事件。通过多种方式对ui进行测试,ui的测试更加全面,测试结果也相对更加可靠。
38.在一种可能的实现方式中,图2示出本发明的一个实施例提供的一种wpf应用程序的ui测试方法,该方法可以由电子设备执行,例如终端设备,也就是说,上述的wpf应用程序的ui测试方法可以由安装在终端设备的硬件或软件来执行,该方法包括如下步骤:
39.步骤s201:启动wpf应用程序。
40.步骤s203:从wpf应用程序的源码中获取wpf应用程序的application对象。
41.步骤s205:基于application对象从源码中确定目标ui。
42.步骤s207:根据元素标识在wpf可视化树中查找目标ui中的至少一个元素,对wpf可视化树中包含的至少一个元素进行测试。
43.具体来讲,wpf可视化树表示的是可视化对象的结构,其是基于ui界面中的元素的嵌套关系创建的元素树,针对源码创建的wpf应用程序,则将基于元素的指定属性值的方式创建wpf可视化树的树结构,在wpf可视化树中将ui的各控件对象以树结构的形式进行呈现。wpf可视化树中各控件对象均包括元素标识,用来区分各控件对象。
44.在一种可能的实现方式中,元素标识包括名称、身份标识码(identity document,id)和标签中的至少一者,根据元素标识在wpf可视化树中查找目标ui中的至少一个元素包括:
45.遍历wpf可视化树,根据名称、id和标签中的任意一者在wpf可视化树中查找目标ui中的至少一个元素。或者,遍历wpf可视化树,根据名称、id和标签中的至少两者在wpf可视化树中查找目标ui中的至少一个元素。或者,遍历wpf可视化树,根据名称、id和标签在wpf可视化树中查找目标ui中的至少一个元素。
46.具体来讲,名称用来定义控件对象的名称、id是控件对象的标识码以及标签用来标识控件对象的属性。其中,遍历wpf可视化树,可以按照名称或者id或者标签在wpf可视化
树中查找目标ui中的至少一个元素。按照名称、id和标签中的至少两者在wpf可视化树中查找目标ui中的至少一个元素。例如,分别利用名称和id在wpf可视化树中查找与该名称和id相互匹配的元素,然后将利用名称在wpf可视化树中查找到的元素与利用id在wpf可视化树中查找到的元素是同一个元素,则查找到的该元素是正确的,若不是同一个元素,则重新查找。从而提高查找元素的正确率。
47.进一步,对wpf可视化树中包含的至少一个元素进行测试包括:
48.通过在wpf可视化树中包含的至少一个控件对象中的填写数据对控件对象进行测试;通过设置wpf可视化树中包含的至少一个控件对象的属性信息对控件对象进行测试;通过触发wpf可视化树中包含中包含的目标事件对控件对象进行测试,目标事件包括登录目标ui、展开下拉框和退出目标ui中的至少一者。值得注意的是,控制对象中的填写数据、控件对象的属性信息以及目标事件可以参见上述实施例的描述,本技术实施例在此不再赘述。
49.值得注意的是,步骤s201至步骤s205与上述步骤s101至步骤s105具有相同或类似的实现方式,相同之处可以互相参照,本技术实施例在此不再赘述。
50.本技术实施例提供的wpf应用程序的ui测试方法,能够调用源码的方式对wpf应用程序的ui进行测试,可以非常灵活对ui进行测试,不存在抓取不到ui中元素的问题,提高了wpf应用程序的ui测试的灵活性,wpf应用程序的ui测试的限制性小,从而完成对wpf应用程序的ui测试。
51.需要说明的是,本技术实施例提供的wpf应用程序的ui测试方法,执行主体可以为wpf应用程序的ui测试装置,或者该wpf应用程序的ui测试装置中的用于执行wpf应用程序的ui测试方法的控制模块。本技术实施例中以wpf应用程序的ui测试装置执行wpf应用程序的ui测试方法为例,说明本技术实施例提供的wpf应用程序的ui测试的装置。
52.图3是根据本技术实施例的一种wpf应用程序的ui测试装置的结构示意图。如图3所示,wpf应用程序的ui测试装置300包括:启动模块301,用于启动wpf应用程序;获取模块302,用于从wpf应用程序的源码中获取wpf应用程序的application对象;确定模块303,用于基于application对象从源码中确定目标ui;测试模块304,用于对目标ui中的至少一个元素进行测试,至少一个元素为源码中的控件对象。
53.通过本技术实施例公开的技术方案,通过启动wpf应用程序,从wpf应用程序的源码中获取wpf应用程序的application对象,基于application对象从源码中确定目标ui,对目标ui中的至少一个元素进行测试,至少一个元素为源码中的控件对象,能够调用源码的方式对wpf应用程序的ui进行测试,可以非常灵活对ui进行测试,不存在抓取不到ui中元素的问题,提高了wpf应用程序的ui测试的灵活性,wpf应用程序的ui测试的限制性小,从而完成对wpf应用程序的ui测试。
54.在一种可能的实现方式中,启动模块301,还用于从源码中调用wpf应用程序的启动程序,通过启动程序启动wpf应用程序。
55.在一种可能的实现方式中,目标ui中的任意一个元素均包括元素标识,测试模块304,还用于根据元素标识在wpf可视化树中查找目标ui中的至少一个元素;对wpf可视化树中包含的至少一个元素进行测试。
56.在一种可能的实现方式中,元素标识包括名称、id和标签中的至少一者,测试模块
304,还用于遍历wpf可视化树,根据名称、id和标签中的任意一者在wpf可视化树中查找目标ui中的至少一个元素;或者,遍历wpf可视化树,根据名称、id和标签中的至少两者在wpf可视化树中查找目标ui中的至少一个元素;或者,遍历wpf可视化树,根据名称、id和标签在wpf可视化树中查找目标ui中的至少一个元素。
57.在一种可能的实现方式中,测试模块304,还用于通过在至少一个控件对象中的填写数据对控件对象进行测试;通过设置至少一个控件对象的属性信息对控件对象进行测试;通过触发目标事件对控件对象进行测试,目标事件包括登录目标ui、展开下拉框和退出目标ui中的至少一者。
58.本技术实施例中的wpf应用程序的ui测试装置800可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本或者个人数字助理(personal digital assistant,pda)等,非移动电子设备可以为服务器、网络附属存储器(network attached storage,nas)、个人计算机(personal computer,pc)、电视机(television,tv)、柜员机或者自助机等,本技术实施例不作具体限定。
59.本技术实施例中的wpf应用程序的ui测试装置800可以为具有操作系统的装置。该操作系统可以为安卓(android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本技术实施例不作具体限定。
60.本技术实施例提供的wpf应用程序的ui测试装置800能够实现以上方法实施例中实现的各个过程,为避免重复,这里不再赘述。
61.可选的,如图4所示,本技术实施例还提供一种电子设备400,包括处理器401,存储器402,存储在存储器402上并可在处理器401上运行的程序或指令,该程序或指令被处理器401执行时实现上述wpf应用程序的ui测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
62.需要说明的是,本技术实施例中的电子设备包括上述的移动电子设备和非移动电子设备。
63.本实施例可以实现上述wpf应用程序的ui测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
64.本技术实施例还提供一种可读存储介质,可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述wpf应用程序的ui测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
65.其中,处理器为上述实施例中的电子设备中的处理器。可读存储介质,包括计算机可读存储介质,如计算机只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
66.本技术实施例另提供了一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现上述wpf应用程序的ui测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
67.应理解,本技术实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
68.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本技术实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
69.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例的方法。
70.上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。
再多了解一些

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

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

相关文献