发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种可远程触发本地UI自动化测试及监控方法。
本发明的目的可以通过以下技术方案来实现:
根据本发明的第一方面,提供了一种可远程触发本地UI自动化测试及监控方法,该方法包括以下步骤:
步骤S101,本地搭建并启动Django服务;
步骤S102,在本地服务框架中集成UI测试框架;
步骤S103,将测试手机与本地电脑进行连接;
步骤S104,使用内网穿透技术,绑定NAT模拟网关与本地服务的IP端口映射关系,透出公网域名;
步骤S105,当用户访问公网域名,NAT模拟网关对用户访问的数据转发给本地服务对应的服务接口,服务接口异步去执行UI自动化测试计划;
步骤S106,执行自动化测试计划完成以后进行测试结果存储,自动生成测试报告并发送给用户。
作为优选的技术方案,所述的本地搭建并启动Django服务为内网服务。
作为优选的技术方案,所述的UI测试框架包括安卓UI自动化测试框架uiautomator2和iOS UI自动化测试框架facebook-wda。
作为优选的技术方案,所述的测试手机包括安卓系统手机以及iOS系统手机,所述的本地电脑为运行Django服务的电脑。
作为优选的技术方案,所述的使用内网穿透技术包括:
所述NAT模拟网关用于转发用户的请求数据;设置的协议为web协议;公网域名为自定义的http地址;本地服务的ip端口为本地Django服务启动时设置的ip以及端口;公网域名与本地Django服务的ip以及端口进行关联,形成映射。
作为优选的技术方案,所述的NAT模拟网关对用户访问的数据进行转发用于当用户访问公网域名时,将用户的请求转发到本地服务上,调用本地服务的接口,以使远端用户与本地服务之间建立通信通道。
作为优选的技术方案,所述的自动化测试计划的生成规则为:
将用户请求中测试项目的名称与框架中的自动化测试用例下的注释按顺序做匹配,匹配结果一致的自动收集进该项目的自动化测试计划中。
作为优选的技术方案,所述的自动化测试报告通过飞书发送给用户,通过调用飞书或其他消息通知工具的开放api,将相关的测试结果发送给用户,及时定位并确认结果。
根据本发明的第二方面,提供了一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现所述的方法。
根据本发明的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的方法。
与现有技术相比,本发明具有以下优点:本发明通过绑定NAT模拟网关与本地服务的ip端口映射关系,透出公网域名,当用户访问公网域名,实现远程用户随时随地、长久稳定的触发本地服务的自动化测试计划并获取测试报告,可及时对代码出现的问题进行定位以及监控,减少线上故障率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明一种可远程触发本地UI自动化测试及监控方法,包括:
本地搭建并启动Django服务;
在本地服务框架中集成UI测试框架;
将测试手机通过USB与本地电脑进行连接;
使用内网穿透技术,包括:NAT模拟网关,设置协议、公网域名以及关联与本地服务的ip端口的映射关系;
NAT模拟网关对用户访问的数据进行转发,转发给本地服务对应的服务接口,服务接口异步去执行UI自动化测试计划;
执行自动化测试计划完成以后,自动将测试结果存储进mysql,自动生成测试报告并通过飞书发送给相关人员。
所述本地搭建并启动Django服务为内网服务。
所述测试手机包括安卓系统手机以及iOS系统手机,本地电脑为运行Django服务的电脑。
所述NAT模拟网关用于转发用户的请求数据;设置的协议为web协议;公网域名为自定义的http地址;本地服务的ip端口为本地Django服务启动时设置的ip以及端口;公网域名与本地Django服务的ip以及端口进行关联,形成映射。
所述NAT模拟网关对用户访问的数据进行转发用于当用户访问公网域名时,将用户的请求转发到本地服务上,调用本地服务的接口,以使远端用户与本地服务之间建立通信通道。
所述自动化测试计划生成规则为:
将用户请求中测试项目的名称与框架中的自动化测试用例下的注释按顺序做匹配,匹配结果一致的自动收集进该项目的自动化测试计划中。
所述自动化测试报告通过飞书发送给相关人员,通过调用飞书或其他消息通知工具的开放api,将相关的测试结果发送给相关人员,及时定位并确认结果。
如图1所示,本发明提供了一种可远程触发本地UI自动化测试及监控方法,NAT模拟网关与本地Django服务的ip端口进行绑定,不会因为本地网络IP动态变化而无法访问。具体的,本发明包括内网穿透服务器、NAT模拟网关与Django服务以及自动化测试框架。内网穿透服务器与本地Django服务之间连接所述NAT模拟网关。
如图2所示,NAT模拟网关包括自定义一个公网域名,用于用户远程访问使用,再设置好与Django服务对应的服务协议。
如图3所示,远程用户访问公网域名,NAT网关接收到请求后,对用户的请求进行转发,转发到对应的Django服务上。
如图4所示,Django服务中包含本身的网络服务,集成mysql用于测试结果的存储,再集成UI自动化测试框架,当Django服务调用UI自动化时,UI自动化框架会触发测试机进行自动化测试用例的执行。
如图5所示,自动化执行完成后,会产生测试结果以及生成对应的测试报告,将测试结果存储进mysql,包括:测试用例通过数、失败数、错误数以及本次自动化测试运行的总的用例数;将测试报告归档在本地的报告目录下,并将测试报告通过飞书发送给相关人员,通知测试结果,起到及时的跟踪与提高迭代效率。
本发明提供了一种可远程触发本地UI自动化测试及监控方法,通过绑定NAT模拟网关与本地服务的ip端口映射关系,透出公网域名,当用户访问公网域名,实现远程用户随时随地、长久稳定的触发本地服务的自动化测试计划并获取测试报告,可及时对代码出现的问题进行定位以及监控,减少线上故障率。
以上是关于方法实施例的介绍,以下通过电子设备及存储介质实施例,对本发明所述方案进行进一步说明。
本发明电子设备包括中央处理单元(CPU),其可以根据存储在只读存储器(ROM)中的计算机程序指令或者从存储单元加载到随机访问存储器(RAM)中的计算机程序指令,来执行各种适当的动作和处理。在RAM中,还可以存储设备操作所需的各种程序和数据。CPU、ROM以及RAM通过总线彼此相连。输入/输出(I/O)接口也连接至总线。
设备中的多个部件连接至I/O接口,包括:输入单元,例如键盘、鼠标等;输出单元,例如各种类型的显示器、扬声器等;存储单元,例如磁盘、光盘等;以及通信单元,例如网卡、调制解调器、无线通信收发机等。通信单元允许设备通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元执行上文所描述的各个方法和处理,例如方法S101~S106。例如,在一些实施例中,方法S101~S106可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元。在一些实施例中,计算机程序的部分或者全部可以经由ROM和/或通信单元而被载入和/或安装到设备上。当计算机程序加载到RAM并由CPU执行时,可以执行上文描述的方法S101~S106的一个或多个步骤。备选地,在其他实施例中,CPU可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法S101~S106。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、负责可编程逻辑设备(CPLD)等等。
用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。