自动化测试方法、装置以及电子设备与流程

文档序号:31790681发布日期:2022-10-14 14:53阅读:167来源:国知局
自动化测试方法、装置以及电子设备与流程

1.本技术涉及智能家居技术领域,更具体地,涉及一种自动化测试方法、装置以及电子设备。


背景技术:

2.随着物联网技术的发展以及智能设备的兴起,智能设备相关的软件开发项目也逐渐增多,例如智能家居设备等。由于软件开发项目时间紧张、测试工作量大且重复,为了缩短软件项目开发的时间,通常需要对智能设备与终端设备之间的交互进行测试。在相关方式中,可以通过人为操作来完成智能设备与终端设备之间的交互测试。
3.但是,现有的相关设备测试方式仍存在效率低下的问题。


技术实现要素:

4.鉴于上述问题,本技术提出了一种自动化测试方法、装置以及电子设备,以实现改善上述问题。
5.第一方面,本技术提供了一种自动化测试方法,所述方法包括:获取待测试设备对应的测试脚本;控制终端设备执行所述测试脚本,以对所述待测试设备进行多次自动化测试处理,得到每次自动化测试处理对应的测试日志;所述自动化测试处理为用于模拟所述终端设备与所述待测试设备进行交互操作的测试处理;基于各所述测试日志,获得针对所述待测试设备的测试结果。
6.第二方面,本技术提供了一种自动化测试装置,所述装置包括:测试脚本获取单元,用于获取待测试设备对应的测试脚本;自动化测试单元,用于控制终端设备执行所述测试脚本,以对所述待测试设备进行多次自动化测试处理,得到每次自动化测试处理对应的测试日志;所述自动化测试处理为用于模拟所述终端设备与所述待测试设备进行交互操作的测试处理;测试结果获取单元,用于基于各所述测试日志,获得针对所述待测试设备的测试结果。
7.作为一种方式,自动化测试单元具体用于控制所述终端设备执行所述测试脚本,并在自动化操作界面中模拟执行针对所述待测试设备的指定功能的交互操作,以对所述待测试设备进行多次自动化测试处理,得到每次自动化测试处理对应的测试日志;所述自动化操作界面为控制所述终端设备与所述待测试设备进行交互操作的界面。
8.可选的,所述自动化测试处理包括配网操作,所述自动化操作界面包括设备扫描页面和信息获取页面;自动化测试单元具体用于控制所述终端设备执行所述测试脚本,并基于所述自动化操作界面中的设备扫描页面获取所述待测试设备,以建立所述终端设备与所述待测试设备之间的连接;通过所述自动化操作界面中的信息获取页面获取网络接入信息,并将所述网络接入信息通过所述连接发送至所述待测试设备,以使所述待测试设备基于所述网络接入信息进行多次配网操作,得到每次配网操作对应的测试日志。
9.作为另一种方式,所述测试脚本包括第一接口脚本,所述自动化测试处理包括配
网操作;自动化测试单元具体用于基于所述第一接口脚本控制所述待测试设备进入待配网模式,所述待配网模式表征所述待测试设备处于未连接网络状态;控制所述终端设备执行所述测试脚本,对所述待测试设备进行多次配网操作,得到每次配网操作对应的测试日志;若根据所述测试日志得到的测试结果为所述待测试设备配网失败,则通过所述第一接口脚本控制所述待测试设备重新进入待配网模式,以对所述待测试设备进行下一次所述配网操作。
10.可选的,所述测试脚本还包括第二接口脚本;自动化测试单元具体用于若根据所述测试日志得到的测试结果为所述待测试设备配网成功,表征所述待测试设备处于连接网络状态,则通过所述第二接口脚本中的解绑接口对所述待测试设备进行解绑操作,以对所述待测试设备进行下一次所述配网操作。
11.作为一种方式,测试结果获取单元具体用于根据每次自动化测试处理对应的测试日志,得到每次自动化测试处理的结果;基于每次自动化测试处理的结果,控制所述待测试设备进行下一次所述自动化测试处理,直到完成测试,得到针对所述待测试设备的测试结果。
12.其中,所述装置还包括:测试脚本生成单元,用于获取针对待测试设备的测试配置信息;根据所述测试配置信息对所述待测试设备配置自动化交互操作脚本;所述自动化交互操作脚本用于模拟终端设备与所述待测试设备进行交互操作;基于所述测试配置信息和所述自动化交互操作脚本,生成针对所述待测试设备的测试脚本。
13.第三方面,本技术提供了一种自动化测试系统,所述系统包括电子设备、终端设备、待测试设备,其中:所述电子设备用于获取所述待测试设备对应的测试脚本,控制所述终端设备执行所述测试脚本,以对所述待测试设备进行多次自动化测试处理,得到每次自动化测试处理对应的测试日志,所述自动化测试处理为用于模拟所述终端设备与所述待测试设备进行交互操作的测试处理,基于各所述测试日志,获得针对所述待测试设备的测试结果;所述终端设备用于响应于所述电子设备的控制操作,对所述待测试设备进行多次自动化测试处理;所述待测试设备用于响应于所述终端设备的所述多次自动化测试处理,进行自动化测试,在每次自动化测试处理完成后,所述待测试设备向所述电子设备发送测试日志。
14.第四方面,本技术提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
15.第五方面,本技术提供的一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码运行时执行上述的方法。
16.一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令时实现本技术各实施例的自动化测试方法中的步骤。
17.本技术提供的一种自动化测试方法、装置、电子设备以及存储介质,在获取待测试设备对应的测试脚本后,控制终端设备执行所述测试脚本,以对所述待测试设备进行多次用于模拟所述终端设备与所述待测试设备进行交互操作的自动化测试处理,得到每次自动
化测试处理对应的测试日志,基于各所述测试日志,获得针对所述待测试设备的测试结果。通过上述方式使得,可以基于测试脚本控制终端设备对待测试设备进行多次自动化测试处理,以得到针对待测试设备的测试结果,避免了自动化测试的过程需要人工干预才能完成终端设备与待测试设备的交互,从而提高了自动化测试效率。
附图说明
18.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1示出了本技术提出的一种自动化测试方法的应用环境的示意图;
20.图2示出了本技术实施例提出的一种自动化测试方法的流程图;
21.图3示出了本技术另一实施例提出的一种自动化测试方法的流程图;
22.图4示出了本技术图3中s220的一种实施例方式的流程图;
23.图5示出了本技术提出的一种设备扫描页面的示意图;
24.图6示出了本技术提出的一种信息获取页面的示意图;
25.图7示出了本技术再一实施例提出的一种自动化测试方法的流程图;
26.图8示出了本技术又一实施例提出的一种自动化测试方法的流程图;
27.图9示出了本技术提出的一种参数化构建配置的流程图;
28.图10示出了本技术提出的一种云平台配置的流程图;
29.图11示出了本技术实施例提出的一种自动化测试装置的结构框图;
30.图12示出了本技术实施例提出的一种自动化测试系统的结构框图;
31.图13示出了本技术提出的一种电子设备的结构框图;
32.图14是本技术实施例的用于保存或者携带实现根据本技术实施例的自动化测试方法的程序代码的存储单元。
具体实施方式
33.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
34.随着科技的发展,智能设备相关的软件开发项目也逐渐增多,由于软件开发项目时间紧张、测试工作量大且重复,为了缩短软件项目开发的时间,通常需要对智能设备与终端设备之间的交互进行测试。在相关方式中,可以通过人为操作来完成智能设备与终端设备之间的交互测试。例如,在进行ui(user interface,用户界面)测试时,需要测试人员在终端设备的相关交互界面中点击与测试流程相对应的控件,以完成智能设备与终端设备之间的交互测试。
35.但是,发明人在对相关研究中发现,相关方式还存在效率低下的问题。
36.因此,发明人提出了本技术中的一种自动化测试方法、装置以及电子设备,在获取待测试设备对应的测试脚本后,控制终端设备执行所述测试脚本,以对所述待测试设备进
行多次用于模拟所述终端设备与所述待测试设备进行交互操作的自动化测试处理,得到每次自动化测试处理对应的测试日志,基于各所述测试日志,获得针对所述待测试设备的测试结果。通过上述方式使得,可以基于测试脚本控制终端设备对待测试设备进行多次自动化测试处理,以得到针对待测试设备的测试结果,避免了自动化测试的过程需要人工干预才能完成终端设备与待测试设备的交互,从而提高了自动化测试效率。
37.请参照图1,为本技术实施例的一种应用环境示意图。其中,图1提供了一种自动化测试系统10,该自动化测试系统包括网关100、与网关100连接的待测试设备200、与网关100连接的电子设备300以及与电子设备300连接的终端设备400。其中,网关100可以为智能控制的智能网关,可以实现系统数据采集、数据传输、联动控制等功能。网关100还可以通过无线方式与服务器和智能交互终端等产品进行信息交互。
38.待测试设备200可以包括设置在相应场景空间下需要进行自动化测试的智能设备,具体可以为智能家居设备,例如,可以包括智能网关、智能开关、智能灯等。网关100与待测试设备200可以通过蓝牙、wifi(wireless-fidelity,无线保真)、zigbee(紫蜂技术等通信方式连接),在本技术实施例中网关100与待测试设备200的连接方式不作限定。
39.电子设备300可以是本地服务器、云服务器等服务器,具体的服务器类型在本技术实施例中可以不作为限定。设置于不同的空间区域的待测试设备200以及网关100都可以通过网络与同一个电子设备300进行通信连接。
40.终端设备400可以包括个人电脑(personal computer,pc)、平板电脑、智能手机、个人数字助理(personal digital assistant,pda)、智能面板等,在此不做限定。
41.在一些实施例中,电子设备300可以获取待测试设备200对应的测试脚本,并控制终端设备400执行测试脚本;终端设备400可以基于测试脚本对待测试设备200进行多次自动化测试处理;待测试设备200可以响应于终端设备200的多次自动化测试,进行自动化测试,在每次自动化测试处理完成后,向电子设备300发送测试日志,使得电子设备300可以基于多次自动化测试的测试日志,获得针对待测试设备200的测试结果。
42.为了更好地理解本技术实施例的方案,下面先对本技术实施例所使用的技术名词解释。
43.jenkins:可以是一个开源软件项目,jenkins可以是基于java开发的一种持续集成工具,可以用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。
44.pytest:可以是一个非常成熟的全功能的python测试框架。
45.appium:是一个开源的,适用于原生或混合移动应用(hybrid mobile apps)的自动化测试工具。
46.pyserial模块:封装了python对串口的访问,为多平台的使用提供了统一的接口。
47.requests模块:可以是用python编写的使用apache2 licensed许可证的http(hyper text transfer protocol,超文本传输协议)库。
48.allure:可以是一个轻量级、灵活的、支持多语言的测试报告工具,可以提供详尽的测试报告、测试步骤、统计报告等,可以集成到jenkins平台。
49.下面将结合附图对本技术的实施例进行介绍。
50.请参阅图2,本技术提供的一种自动化测试方法,以该方法应用于电子设备为例进
行说明,该电子设备可以是如图1示出的终端设备,也可以是服务器等。其中,电子设备为服务器时服务器可通过与终端设备进行交互实现本实施的自动化测试方法。所述方法具体包括以下步骤:
51.s110:获取待测试设备对应的测试脚本。
52.其中,测试脚本可以是指针对特定测试功能的一系列指令,具体可以是自动执行测试过程(或部分测试过程)的计算机可读指令。
53.作为一种方式,待测试设备可以对应有设备标识,该设备标识可以唯一对应一个待测试设备,电子设备可以基于该设备标识获取待测试设备对应的测试脚本。示例性的,如表1所示,可以将设备标识与测试脚本进行关联存储,当测试人员需要对某个待测试设备进行自动化测试时,测试人员可以在电子设备对应的测试平台的界面中输入该待测试设备的设备标识,电子设备在获取到该设备标识后,可以基于表1得到该待测试设备对应的测试脚本。
54.表1
55.设备标识测试脚本1234测试脚本1......2234测试脚本1000
56.s120:控制终端设备执行所述测试脚本,以对所述待测试设备进行多次自动化测试处理,得到每次自动化测试处理对应的测试日志;所述自动化测试处理为用于模拟所述终端设备与所述待测试设备进行交互操作的测试处理。
57.其中,交互操作可以是终端设备对待测试设备的控制操作,例如,当待测试设备为智能灯时,交互操作可以是终端设备对智能灯进行开启、关闭等的控制操作。交互操作还可以是待测试设备通过终端设备进行的配网操作,配网操作可以使待测试设备与网络连接以及与部署在电子设备上的云平台进行绑定,从而实现与云平台、终端设备以及其他设备的交互与通信。例如,当待测试设备为智能网关时,交互操作可以智能网关通过终端设备进行的配网操作。
58.测试日志可以指表征待测试设备的测试结果的记录,记录可以指测试运行或调度运行期间发生的事件的历史记录。
59.作为一种方式,电子设备与终端设备之间可以有通信线路,该通信线路可以是一条数据线,电子设备可以控制终端设备执行基于步骤s110得到的测试脚本,以对待测试设备进行多次自动化测试处理,得到每次自动化测试处理对应的测试日志。
60.在另一种方式中,电子设备与终端设备之间也可通过无线通信链路进行通信,以使得控制终端设备执行基于步骤s110得到的测试脚本,以对待测试设备进行多次自动化测试处理,得到每次自动化测试处理对应的测试日志。
61.电子设备获取到针对待测试设备的测试脚本后,则可以控制终端设备执行测试脚本,以基于该测试脚本控制终端设备模拟执行与待测试设备进行自动交互操作处理。可以理解的是,该模拟的交互操处理,能够实现终端设备自动执行与待测试设备的交互操作处理,不需要人工参与操作。
62.s130:基于各所述测试日志,获得针对所述待测试设备的测试结果。
63.其中,测试结果可以指在对对待测试设备进行多次自动化测试处理后得到的最终结果,测试结果可以表征待测试设备是否通过测试。
64.作为一种方式,可以根据每次自动化测试处理对应的测试日志,得到每次自动化测试处理的结果;基于每次自动化测试处理的结果,控制待测试设备进行下一次自动化测试处理,直到完成测试,得到针对待测试设备的测试结果。
65.可选的,可以对每次自动化测试的结果进行统计,得到多次自动化测试处理的测试成功的概率,将该概率与预设概率值进行比较,若该概率值大于预设概率值,则针对待测试设备的测试结果为待测试设备通过测试;若该概率值小于或等于预设概率值,则针对待测试设备的测试结果为待测试设备未通过测试。示例性的,假设待测试设备的预测概率值可以为90%,若多次自动化测试处理的测试成功的概率为95%,则针对待测试设备的测试结果为待测试设备通过测试;若多次自动化测试处理的测试成功的概率为60%,则针对待测试设备的测试结果为待测试设备未通过测试。
66.本实施例提供的一种自动化测试方法,在获取待测试设备对应的测试脚本后,控制终端设备执行所述测试脚本,以对所述待测试设备进行多次用于模拟所述终端设备与所述待测试设备进行交互操作的自动化测试处理,得到每次自动化测试处理对应的测试日志,基于各所述测试日志,获得针对所述待测试设备的测试结果。通过上述方式使得,可以基于测试脚本控制终端设备对待测试设备进行多次自动化测试处理,以得到针对待测试设备的测试结果,避免了自动化测试的过程需要人工干预才能完成终端设备与待测试设备的交互,从而提高了自动化测试效率。
67.请参阅图3,本技术提供的一种自动化测试方法,所述方法包括:
68.s210:获取待测试设备对应的测试脚本。
69.s220:控制所述终端设备执行所述测试脚本,并在自动化操作界面中模拟执行针对所述待测试设备的指定功能的交互操作,以对所述待测试设备进行多次自动化测试处理,得到每次自动化测试处理对应的测试日志;所述自动化操作界面为控制所述终端设备与所述待测试设备进行交互操作的界面。
70.其中,在自动化操作界面中模拟执行针对所述待测试设备的指定功能的交互操作,可以指终端设备在执行测试脚本的过程中,模拟测试人员在自动化操作界面中执行针对待测试设备的指定功能的交互操作,指定功能的交互操作可以包括配网操作。自动化测试处理可以包括配网操作,自动化操作界面可以包括设备扫描页面和信息获取页面。
71.作为一种方式,如图4所示,所述控制所述终端设备执行所述测试脚本,并在自动化操作界面中模拟执行针对所述待测试设备的指定功能的交互操作,以对所述待测试设备进行多次自动化测试处理,得到每次自动化测试处理对应的测试日志,包括:
72.s221:控制所述终端设备执行所述测试脚本,并基于所述自动化操作界面中的设备扫描页面获取所述待测试设备,以建立所述终端设备与所述待测试设备之间的连接。
73.作为一种方式,电子设备可以控制终端设备执行待测试设备对应的配网操作的测试脚本,终端设备在执行该测试脚本的过程中可以显示自动化操作界面中的设备扫描页面,该设备扫面页面中可以有扫描到的多个设备的设备标识,终端设备可以基于设备标识,获取待测试设备,以建立终端设备与待测试设备之间的连接。示例性的,待测试设备的设备标识可以为2221,在终端设备在执行该测试脚本的过程中显示的设备扫描页面可以如图5
所示,图5中两个扫描到的设备的设备标识分别为2234、2221,终端设备可以基于设备标识,将设备标识为2221的设备做为待测试设备,以建立终端设备与待测试设备之间的连接。
74.s222:通过所述自动化操作界面中的信息获取页面获取网络接入信息,并将所述网络接入信息通过所述连接发送至所述待测试设备,以使所述待测试设备基于所述网络接入信息进行多次配网操作,得到每次配网操作对应的测试日志。
75.其中,网络接入信息可以指待测试设备接入网络所需要的信息,网络接入信息可以是路由器的ssid(service set identifier,服务集标识)和密码。
76.作为一种方式,在终端设备与待测试设备建立连接后,终端设备可以通过自动化操作界面中的信息获取页面获取到网络接入信息,并通过终端设备与待测试设备之间的连接将网络接入信息发送至待测试设备,以使所述待测试设备基于网络接入信息进行多次配网操作,得到每次配网操作对应的测试日志。
77.示例性的,终端设备在执行该测试脚本的过程中显示的信息获取页面可以如图6所示,终端设备在执行测试脚本时,可以自动将测试脚本中携带的网络接入信息输入图6所示信息获取页面相对应的信息框中,从而可以通过终端设备与待测试设备之间的连接将网络信息发送至待测试设备,使得待测试设备可以基于网络接入信息进行多次配网操作,得到每次配网操作对应的测试日志。
78.s230:基于各所述测试日志,获得针对所述待测试设备的测试结果。
79.本实施例提供的一种自动化测试方法,通过上述方式使得,可以基于测试脚本控制终端设备对待测试设备进行多次自动化测试处理,以得到针对待测试设备的测试结果,避免了自动化测试的过程需要人工干预才能完成终端设备与待测试设备的交互,从而提高了自动化测试效率。并且,在本实施例中,当自动化测试处理为配网操作时,可以控制终端设备执行测试脚本,并在自动化操作界面中显示设备扫描页面、信息获取页面,使得终端设备可以在设备扫描页面模拟测试人员的相关操作以建立终端设备与待测试设备之间的连接,以及在信息获取页面模拟测试人员的相关操作,使得待测试设备可以基于网络接入信息进行多次配网操作,得到每次配网操作对应的测试日志,从而提高了自动化测试效率。
80.请参阅图7,本技术提供的一种自动化测试方法,所述方法包括:
81.s310:获取待测试设备对应的测试脚本。
82.s320:基于所述第一接口脚本控制所述待测试设备进入待配网模式,所述待配网模式表征所述待测试设备处于未连接网络状态。
83.其中,当自动化测试处理为配网操作时,测试脚本可以包括第一接口脚本,第一接口脚本可以用于在待测试设备未接入网络时,建立电子设备与待测试设备之间的通信线路,不仅可以使待测试设备基于该通信线路将测试日志发送至电子设备,还可以使电子设备基于该通信线路控制待测试设备进入待配网模式。待配网模式可以指待测试设备处于无线ap(access point,无线接入点)模式。
84.作为一种方式,建立的电子设备与待测试设备之间的通信线路可以为串口通信线路,电子设备可以通过串口通信线路向待测试设备发送待配网模式启动命令,待测试设备在响应于该命令后可以开启无线ap模式,向外界发射热点信号,使待测试设备可以被其他设备扫描发现。
85.作为另一种方式,建立的电子设备与待测试设备之间的通信线路可以为telnet
(远程终端协议)通信线路,电子设备可以通过telnet通信线路向待测试设备发送待配网模式启动命令,待测试设备在响应于该命令后可以开启无线ap模式,向外界发射热点信号,使待测试设备可以被其他设备扫描发现。
86.s330:控制所述终端设备执行所述测试脚本,对所述待测试设备进行配网操作,得到每次配网操作对应的测试日志。
87.作为一种方式,可以基于步骤s221、步骤s222对待测试设备进行配网操作,并生成每次配网操作对应的测试日志,待测试设备可以将生成的测试日志通过电子设备与待测试设备之间的通信线路发送至电子设备。
88.s340:若根据所述测试日志得到的测试结果为所述待测试设备配网失败,则通过所述第一接口脚本控制所述待测试设备重新进入待配网模式,以对所述待测试设备进行下一次所述配网操作。
89.作为一种方式,若根据测试日志得到的测试结果为待测试设备配网失败,表明待测试设备未能成功接入网络,则电子设备可以通过第一接口脚本控制待测试设备重新进入待配网模式,以对待测试设备进行下一次配网操作。
90.s350:若根据所述测试日志得到的测试结果为所述待测试设备配网成功,表征所述待测试设备处于连接网络状态,则通过所述第二接口脚本中的解绑接口对所述待测试设备进行解绑操作,以对所述待测试设备进行下一次所述配网操作。
91.其中,当自动化测试处理为配网操作时,测试脚本还可以包括第二接口脚本,第二接口脚本可以用于在待测试设备成功接入网络(与部署在电子设备上的云平台存在通信连接)后,解除云平台与待测试设备之间的通信连接。
92.作为一种方式,若根据测试日志得到的测试结果为待测试设备配网成功,表明待测试设备已经成功接入网络,则可以调用第二接口脚本中的解绑接口对待测试设备进行与云平台的解绑操作,使得待测试设备重新处于待配网模式,以对待测试设备进行下一次配网操作。
93.s360:基于各所述测试日志,获得针对所述待测试设备的测试结果。
94.本实施例提供的一种自动化测试方法,通过上述方式使得,本实施例提供的一种自动化测试方法,通过上述方式使得,可以基于测试脚本控制终端设备对待测试设备进行多次自动化测试处理,以得到针对待测试设备的测试结果,避免了自动化测试的过程需要人工干预才能完成终端设备与待测试设备的交互,从而提高了自动化测试效率。并且,在本实施例中,当自动化测试处理为配网操作时,可以基于每一次配网操作的测试日志确定当次配网操作的测试结果为待测试设备配网成功还是待测试设备配网失败,并针对不同的测试结果可以有不同的方式使待测试设备重新进入待配网模式,从而开始下一次的配网操作,提高了自动化测试处理的灵活性。
95.请参阅图8,本技术提供的一种自动化测试方法,所述方法包括:
96.s410:获取针对待测试设备的测试配置信息。
97.其中,测试配置信息可以指用于生成针对待测试设备的测试脚本的信息,测试配置信息可以包括测试参数、服务参数、底层框架、底层模块,其中,测试参数可以包括待测试设备的设备标识、测试次数。
98.底层框架可以为pytest框架,pytest框架可以用于承载部署在电子设备上的云平
台,该云平台可以是jenkins平台,pytest框架还可以作为底层框架承载整个测试平台,用于管理底层模块,底层模块可以有appium模块、python库的requests模块、python库的pyserial模块。
99.其中,appium模块可以用于模拟终端设备的自动化操作界面的测试流程,以及模拟在终端设备上对不同测试流程对应的页面进行点击等操作。
100.requests模块可以通过http协议访问云平台、与云平台通信,以及当自动化测试处理为配网操作时,调用解绑接口对待测试设备进行解绑,使待测试设备进入待配网模式。requests模块的作用包括:通过http协议访问云端服务器,与云端通信,实现网关入网后的解绑操作;例如针对配网操作流程,配网绑定成功后,调用云端解绑接口对设备进行解绑,对待测试设备的状态进行重置。
101.pyserial模块可以通过代码编写创建一个类,例如class gateway_serial()类。然后再分别定义串口读取数据函数、串口写入数据的函数。实时记录日志,或配网失败后通过串口对待测试设备发送重置命令。其中,串口相当于一条通信通道,设备状态可写入日志中,可通过该通道写入写出;写出即发送命令给待测试设备,写入是将设备状态记录至日志中。pyserial模块可以用于解析测试日志,以及建立电子设备与待测试设备的通信线路,并通过该通信线路传输测试日志以及相关命令。
102.服务参数可以为用于生成自动化交互操作脚本的配置参数,服务参数可以包括platformname(云平台名称)、devicename(待测试设备的设备标识)、platformversion(云平台版本)、apppackage(应用程序包的包名)、appactivity(应用程序包路径)。
103.作为一种方式,研发人员或者测试人员可以预先设置好针对待测试设备的测试配置信息,并将预先设置好的测试配置信息输入电子设备,以使电子设备可以获取到针对待测试设备的测试配置信息。
104.具体可以通过在jenkins平台实现自动化测试集成、触发、报告展示:在jenkins中进行参数化构建配置(基于jenkins平台的定时功能,安置预设时间周期获取所述pytest框架上的所有用例):
105.步骤1)参数化构建配置;
106.步骤2)在jenkins中执行参数化构建,等待测试完成,获取allure测试报告:启动构建(启动构建即执行按照配置执行测试;将配置的输入参数,传入测试脚本,进行测试),每次构建前,需要点击build with parameters对参数进行设置;即可进行build(具体操作:在jenkins平台点击“build”按钮,即进行执行),待程序执行完毕,点击查看报告;
107.步骤3)选择间时环境;
108.步骤4)选择建立后操作,添加allure报告;在jenkins中执行参数化构建,等待测试完成,获取allure测试报告:启动构建(即执行按照配置执行测试;将配置的输入参数,传入测试脚本,进行测试),每次构建前,可以通过build with parameters对参数进行设置;即可通过build操作进行执行。待程序执行完毕,点击查看报告。
109.其中,在jenkins平台中进行参数化构建,主要配置输入的测试参数(主要包括网关设备id,运行次数n)以及配置执行的windows命令等。配置这些参数的作用在于:在jenkins平台上配置好输入的测试参数和执行命令,就不用直接改动底层代码脚本。相当于配置了一个交互界面,直接在界面上填入参数值,即可传入不同参数值,进行测试。
110.采用pytest框架写好脚本后,可以在jenkins平台上进行参数化构建配置,将测试脚本关联至jenkins平台点击构建即可运行测试脚本。
111.s420:根据所述测试配置信息对所述待测试设备配置自动化交互操作脚本;所述自动化交互操作脚本用于模拟终端设备与所述待测试设备进行交互操作。
112.其中,自动化交互操作脚本可以是测试脚本中用于在终端设备执行的ui自动化操作的脚本。
113.作为一种方式,电子设备可以启动appium模块中desktop的相关服务,并基于获取到的服务参数进行配置,在配置成功后,可以进行获取研发人员或者测试人员输入的脚本、元素定位信息等,从而可以成功配置自动化交互操作脚本。其中,当自动化测试处理为配网操作时,元素可以为配网过程中需要点击到的终端设备的自动化测试处理界面的元素。
114.s430:基于所述测试配置信息和所述自动化交互操作脚本,生成针对所述待测试设备的测试脚本。
115.作为一种方式,可以基于测试配置信息中的pyserial模块、requests模块以及自动化交互操作脚本生成针对待测试设备的测试脚本。其中,pyserial模块可以用于配置第一接口脚本,requests模块可以用于配置第二接口脚本。
116.可选的,在生成测试脚本后,研发人员或者测试人员可以将脚本存储在指定位置,并在云平台中按照如图9所示的流程进行参数化构建配置,首先执行步骤s431:在jenkins平台中的“通用”栏下勾选“该项目已参数化”,并选择字符串参数后填写“名称”、“默认值”、“描述”。
117.再基于步骤s432在jenkins平台中的“建设环境”栏下选择“将时间戳记添加到控制台”。
118.然后基于步骤s433在jenkins平台中的“构建”栏增加建造步骤,输入执行windows/linux批处理命令“pytest.exe脚本路径-xxx”,其中xxx可以为测试脚本的存储位置,以将生成的测试脚本与jenkins平台进行关联。
119.接着基于步骤s434在jenkins平台中的“建立后操作”栏添加allure报告。
120.在参数化构建配置完成后,电子设备可以在不对测试脚本进行改动的情况下开始自动化测试处理,提升了自动化测试效率。
121.s440:获取待测试设备对应的测试脚本。
122.s450:控制终端设备执行所述测试脚本,以对所述待测试设备进行多次自动化测试处理,得到每次自动化测试处理对应的测试日志;所述自动化测试处理为用于模拟所述终端设备与所述待测试设备进行交互操作的测试处理。
123.作为一种方式,pytest框架能够支持简单的单元测试和复杂的功能测试;具有很多第三方插件,并且可以自定义扩展。例如可以通过插件扩展命令使用allure插件,allure插件可以用于生成简洁、美观、易读的测试报告。克服了一些基于其他框架进行开发和测试带来编写维护难,报告可读性差的问题,提高了自动化测试效率。在得到每次自动化测试处理对应的测试日志时,电子设备可以基于allure插件以及测试日志得到测试报告,从而可以更容易对自动化测试处理进行了解和分析。
124.s460:基于各所述测试日志,获得针对所述待测试设备的测试结果。
125.本实施例提供的一种自动化测试方法,通过上述方式使得,本实施例提供的一种
自动化测试方法,通过上述方式使得,可以基于测试脚本控制终端设备对待测试设备进行多次自动化测试处理,以得到针对待测试设备的测试结果,避免了自动化测试的过程需要人工干预才能完成终端设备与待测试设备的交互,从而提高了自动化测试效率。并且,在本实施例中,可以基于针对待测试设备的测试配置信息配置自动化交互操作脚本,并基于测试配置信息以及自动化交互操作脚本生成测试脚本。并且,测试脚本的底层框架为pytest框架,pytest框架可以基于测试需求扩展第三方插件,易于开发和进行维护,从而提高了自动化测试效率。
126.本技术还提供一种应用场景,上述自动化测试方法在该应用场景的应用如下:在智能家居场景中,可以基于设备标识获取待测试设备对应的测试脚本,在获取到测试脚本后基于测试脚本中的第一接口脚本开启日志记录模式,以便接收测试日志,然后控制终端设备执行测试脚本,以对待测试设备进行多次自动化测试处理,得到每次自动化测试处理对应的测试日志,基于各所述测试日志,获得针对所述待测试设备的测试结果。其中,当待测试设备为智能网关时,自动化测试处理可以为配网操作,在进行配网操作时,电子设备可以先基于第一接口脚本控制待测试设备进入待配网模式;再控制终端设备执行测试脚本,并基于自动化操作界面中的设备扫描页面获取待测试设备,以建立终端设备与待测试设备之间的连接;基于连接获取网络接入信息,并通过自动化操作界面中的信息获取页面将网络接入信息发送至待测试设备,以使待测试设备基于网络接入信息进行多次配网操作,得到每次配网操作对应的测试日志。
127.在当次配网操作过程中,若根据测试日志得到的测试结果为待测试设备配网失败,则可以通过第一接口脚本控制待测试设备重新进入待配网模式,以对待测试设备进行下一次所述自动化测试操作;若根据测试日志得到的测试结果为待测试设备配网成功,则可以通过第二接口脚本中的解绑接口对待测试设备进行解绑操作,以对待测试设备进行下一次自动化测试操作。
128.可选的,在开始测试前还可以按照图10所示的流程图进行相关配置,例如,将测试脚本与云平台进行关联、将测试日志呈现形式设置为allure测试报告等,使得可以基于部署在电子设备的云平台进行自动化测试处理,大大提高了自动测试的智能化,以及自动测试效率。
129.请参阅图11,本技术提供的一种自动化测试装置600,所述装置600包括:
130.测试脚本获取单元610,用于获取待测试设备对应的测试脚本。
131.自动化测试单元620,用于控制终端设备执行所述测试脚本,以对所述待测试设备进行多次自动化测试处理,得到每次自动化测试处理对应的测试日志;所述自动化测试处理为用于模拟所述终端设备与所述待测试设备进行交互操作的测试处理。
132.测试结果获取单元630,用于基于各所述测试日志,获得针对所述待测试设备的测试结果。
133.作为一种方式,自动化测试单元620具体用于控制所述终端设备执行所述测试脚本,并在自动化操作界面中模拟执行针对所述待测试设备的指定功能的交互操作,以对所述待测试设备进行多次自动化测试处理,得到每次自动化测试处理对应的测试日志;所述自动化操作界面为控制所述终端设备与所述待测试设备进行交互操作的界面。
134.可选的,所述自动化测试处理包括配网操作,所述自动化操作界面包括设备扫描
页面和信息获取页面;自动化测试单元620具体用于控制所述终端设备执行所述测试脚本,并基于所述自动化操作界面中的设备扫描页面获取所述待测试设备,以建立所述终端设备与所述待测试设备之间的连接;通过所述自动化操作界面中的信息获取页面获取网络接入信息,并将所述网络接入信息通过所述连接发送至所述待测试设备,以使所述待测试设备基于所述网络接入信息进行多次配网操作,得到每次配网操作对应的测试日志。
135.作为另一种方式,所述测试脚本包括第一接口脚本,所述自动化测试处理包括配网操作;自动化测试单元620具体用于基于所述第一接口脚本控制所述待测试设备进入待配网模式,所述待配网模式表征所述待测试设备处于未连接网络状态;控制所述终端设备执行所述测试脚本,对所述待测试设备进行多次配网操作,得到每次配网操作对应的测试日志;若根据所述测试日志得到的测试结果为所述待测试设备配网失败,则通过所述第一接口脚本控制所述待测试设备重新进入待配网模式,以对所述待测试设备进行下一次所述配网操作。
136.可选的,所述测试脚本还包括第二接口脚本;自动化测试单元620具体用于若根据所述测试日志得到的测试结果为所述待测试设备配网成功,表征所述待测试设备处于连接网络状态,则通过所述第二接口脚本中的解绑接口对所述待测试设备进行解绑操作,以对所述待测试设备进行下一次所述配网操作。
137.作为一种方式,测试结果获取单元630具体用于根据每次自动化测试处理对应的测试日志,得到每次自动化测试处理的结果;基于每次自动化测试处理的结果,控制所述待测试设备进行下一次所述自动化测试处理,直到完成测试,得到针对所述待测试设备的测试结果。
138.其中,所述装置600还包括:
139.测试脚本生成单元640用于获取针对待测试设备的测试配置信息;根据所述测试配置信息对所述待测试设备配置自动化交互操作脚本;所述自动化交互操作脚本用于模拟终端设备与所述待测试设备进行交互操作;基于所述测试配置信息和所述自动化交互操作脚本,生成针对所述待测试设备的测试脚本。
140.请参阅图12,本技术提供的一种自动化测试系统20,所述系统20包括电子设备202、终端设备204、待测试设备206。
141.下面将结合图13对本技术提供的一种电子设备进行说明。
142.请参阅图13,基于上述的自动化测试方法、装置,本技术实施例还提供的另一种可以执行前述自动化测试方法的电子设备100。电子设备100包括相互耦合的一个或多个(图中仅示出一个)处理器102、存储器104、网络模块106。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
143.其中,处理器102可以包括一个或者多个处理核。处理器102利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器102可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中
的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
144.存储器104可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
145.再者,电子设备100除了前述所示的器件外,还可以包括网络模块106。
146.所述网络模块106用于实现电子设备100与其他设备之间的信息交互,例如,传输设备控制指令、操纵请求指令以及状态信息获取指令等。而当电子设备100具体为不同的设备时,其对应的网络模块106可能会有不同。
147.作为一种方式,电子设备100的网络模块106可以为射频模块,该射频模块用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。所述射频模块可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(sim)卡、存储器等等。例如,该射频模块可以通过发送或者接收的电磁波与外部设备进行交互。例如,射频模块可以向目标设备发送指令。
148.请参考图14,其示出了本技术实施例提供的一种计算机可读存储介质的结构框图。该计算机可读存储介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
149.计算机可读存储介质800可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读存储介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
150.在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
151.综上所述,本技术提供的一种自动化测试方法、装置以及电子设备,在获取待测试设备对应的测试脚本后,控制终端设备执行所述测试脚本,以对所述待测试设备进行多次用于模拟所述终端设备与所述待测试设备进行交互操作的自动化测试处理,得到每次自动化测试处理对应的测试日志,基于各所述测试日志,获得针对所述待测试设备的测试结果。通过上述方式使得,可以基于测试脚本控制终端设备对待测试设备进行多次自动化测试处理,以得到针对待测试设备的测试结果,避免了自动化测试的过程需要人工干预才能完成终端设备与待测试设备的交互,从而提高了自动化测试效率。
152.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1