CN114661594A - 一种用于自动化测试的方法、设备、介质及程序产品 - Google Patents

一种用于自动化测试的方法、设备、介质及程序产品 Download PDF

Info

Publication number
CN114661594A
CN114661594A CN202210260184.XA CN202210260184A CN114661594A CN 114661594 A CN114661594 A CN 114661594A CN 202210260184 A CN202210260184 A CN 202210260184A CN 114661594 A CN114661594 A CN 114661594A
Authority
CN
China
Prior art keywords
test
target
template
target test
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210260184.XA
Other languages
English (en)
Inventor
吴建锡
曹卫娟
李朋娟
高艳
王瑞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhangmen Science and Technology Co Ltd
Original Assignee
Shanghai Zhangmen Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Zhangmen Science and Technology Co Ltd filed Critical Shanghai Zhangmen Science and Technology Co Ltd
Priority to CN202210260184.XA priority Critical patent/CN114661594A/zh
Publication of CN114661594A publication Critical patent/CN114661594A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请的目的是提供一种用于自动化测试的方法、设备、介质及程序产品,该方法包括:响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作,将所述目标测试模板发送给第二服务器,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务;接收并向所述用户呈现所述第二服务器发送的、关于所述测试任务的测试报告信息。本申请通过构建一个自动化测试平台,可以通过制定出符合公司项目的标准化规范,测试人员按需定制测试模板即可做平台端测试,流程简单操作方便可视化更清晰,通过部署多种自动化测试框架使得覆盖测试项目类型更全面。

Description

一种用于自动化测试的方法、设备、介质及程序产品
技术领域
本申请涉及通信领域,尤其涉及一种用于自动化测试的技术。
背景技术
在现有技术中,一个强大高效的自动化测试平台必须提供多种测试工具和标准化规范,通过这些工具可以完成不同类型项目下的测试计划、测试设计、测试构建、测试执行和测试结果验证。目前市面上的开源自动化测试平台有几个,但是基于安全、技术保护、与各个公司自有项目契合度等考虑,各个公司较少使用通用的测试平台,而是自主研发测试平台。
发明内容
本申请的一个目的是提供一种用于自动化测试的方法、设备、介质及程序产品。
根据本申请的一个方面,提供了一种用于自动化测试的方法,该方法包括:
响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作,将所述目标测试模板发送给第二服务器,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架;
接收并向所述用户呈现所述第二服务器发送的、关于所述测试任务的测试报告信息。
根据本申请的另一个方面,提供了一种用于自动化测试的方法,该方法包括:
接收第一服务器响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作发送的所述目标测试模板,基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架;
响应于所述测试任务执行完成,生成关于所述测试任务的测试报告信息,将所述测试报告信息发送给所述第一服务器。
根据本申请的一个方面,提供了一种用于自动化测试的第一服务器,该第一服务器包括:
一一模块,用于响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作,将所述目标测试模板发送给第二服务器,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架;
一二模块,用于接收并向所述用户呈现所述第二服务器发送的、关于所述测试任务的测试报告信息。
根据本申请的另一个方面,提供了一种用于自动化测试的第二服务器,该第二服务器包括:
二一模块,用于接收第一服务器响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作发送的所述目标测试模板,基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架;
二二模块,用于响应于所述测试任务执行完成,生成关于所述测试任务的测试报告信息,将所述测试报告信息发送给所述第一服务器。
根据本申请的一个方面,提供了一种用于生成路线信息的计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,其中,所述处理器执行所述计算机程序以实现如上所述任一方法的操作。
根据本申请的一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如上所述任一方法的操作。
根据本申请的一个方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述任一方法的步骤。
与现有技术相比,本申请通过响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作,将所述目标测试模板发送给第二服务器,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架;接收并向所述用户呈现所述第二服务器发送的、关于所述测试任务的测试报告信息,从而通过构建一个自动化测试平台,可以通过制定出符合公司项目的标准化规范(可以理解为一套base代码对应的一个功能块规范),测试人员按需定制测试模板即可做平台端测试,流程简单操作方便可视化更清晰,通过部署多种自动化测试框架使得覆盖测试项目类型更全面,测试报告支持测试平台报告、邮件、企业微信公众号消息推送等多种展示方式,对测试结果跟踪更高效,测试报告中还会提供异常失败用例的录屏文件,对错误分析更有利。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个实施例的一种用于自动化测试的方法流程图;
图2示出根据本申请一个实施例的一种用于自动化测试的方法流程图;
图3示出根据本申请一个实施例的一种用于自动化测试的系统方法流程图;
图4示出根据本申请一个实施例的一种用于自动化测试的第一服务器结构图;
图5示出根据本申请一个实施例的一种用于自动化测试的第二服务器结构图;
图6示出根据本申请一个实施例的一种自动化测试平台的架构图;
图7示出根据本申请一个实施例的一种自动化测试平台的测试业务流程图;
图8示出根据本申请一个实施例的一种用于自动化测试的呈现示意图;
图9示出根据本申请一个实施例的一种用于自动化测试的呈现示意图;
图10示出根据本申请一个实施例的一种用于自动化测试的呈现示意图;
图11示出根据本申请一个实施例的一种用于自动化测试的呈现示意图;
图12示出根据本申请一个实施例的一种用于自动化测试的呈现示意图;
图13示出根据本申请一个实施例的一种用于自动化测试的呈现示意图;
图14示出根据本申请一个实施例的一种用于自动化测试的呈现示意图;
图15示出根据本申请一个实施例的一种测试报告的呈现示意图;
图16示出根据本申请一个实施例的一种测试报告的呈现示意图;
图17示出根据本申请一个实施例的一种测试报告的呈现示意图;
图18示出根据本申请一个实施例的一种测试报告的推送示意图;
图19示出根据本申请一个实施例的一种测试报告的推送示意图;
图20示出根据本申请一个实施例的一种测试报告的推送示意图;
图21示出可被用于实施本申请中所述的各个实施例的示例性系统。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(例如,中央处理器(Central Processing Unit,CPU))、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RandomAccess Memory,RAM)和/或非易失性内存等形式,如只读存储器(Read Only Memory,ROM)或闪存(Flash Memory)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(Phase-Change Memory,PCM)、可编程随机存取存储器(Programmable Random Access Memory,PRAM)、静态随机存取存储器(Static Random-Access Memory,SRAM)、动态随机存取存储器(Dynamic Random AccessMemory,DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能光盘(Digital Versatile Disc,DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请所指设备包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于任何一种可与用户进行人机交互(例如通过触摸板进行人机交互)的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如Android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、数字信号处理器(Digital Signal Processor,DSP)、嵌入式设备等。所述网络设备包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,所述设备还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的程序。
当然,本领域技术人员应能理解上述设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在本申请的描述中,“多个”的含义是两个或者更多,除非另有明确具体的限定。
图1示出根据本申请一个实施例的一种用于自动化测试的方法流程图,该方法包括步骤S11和步骤S12。在步骤S11中,第一服务器响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作,将所述目标测试模板发送给第二服务器,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架;在步骤S12中,第一服务器接收并向所述用户呈现所述第二服务器发送的、关于所述测试任务的测试报告信息。
在步骤S11中,第一服务器响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作,将所述目标测试模板发送给第二服务器,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架。在一些实施例中,第一服务器是前端服务器,部署springboot框架的jar服务,第一服务器和测试控制客户端建立连接,测试人员可以通过测试控制客户端在第一服务器上做资源菜单权限服务等维护以及做自动化测试准备、申请、执行和结果查看等操作,还可以提供定时任务框架(例如,job)对测试任务做调度执行和状态变更,还可以提供测试控制客户端和后台数据库之间数据交互以及测试控制客户端和后端服务器上部署的服务之间的交互。在一些实施例中,测试模板包括但不限于测试终端、测试安装包、测试模块名称、测试标识、测试配置文件、测试用例、自定义参数、邮件发送列表、周期任务表达式等配置内容,用户可以在目标测试模板的创建页面中输入(填写或者选择)这些配置内容,然后针对该目标测试模板执行提交操作(例如,点击“提交”按钮),将该目标测试模板发送给第二服务器。在一些实施例中,测试模板对应多种测试类型,该测试类型包括但不限于APP功能测试、性能测试、接口测试、WEB测试等,针对不同测试类型的测试模板,用户需要输入不同的配置内容,按需定制维护测试模板。在一些实施例中,第二服务器是后端服务器,部署移动端(android和ios)UI、Web UI、接口、monkey性能等多个自动化测试框架全方位支持多纬度自动化测试,提供代码文件(例如,python文件)供第一服务器调起完成测试执行、结果报告生成推送以及与后台数据库的测试数据交互,部署tomcat服务和python-http服务存放测试结果文件供第一服务器访问,部署python的哨兵进程支持测试终端的状态监控;部署atxserver2服务支持对测试终端的实时访问和调试,部署nfs文件服务支持服务端集群间的文件共享等。在一些实施例中,第二服务器已与测试终端建立连接,该连接可以是无线连接(例如,WiFi连接),或者,还可以是有线连接(例如,usb连接)。在一些实施例中,第二服务器会将目标测试模板放在调度队列中等待调度执行,当调度到目标测试模板的时候,会基于该目标测试模板对应的测试类型所对应的自动化测试框架来执行该目标测试模板对应的测试任务,不同的测试类型可以对应不同的自动化测试框架,具体地,可以是通过配置内容中的某些信息(例如,测试配置文件、自定义参数、周期任务表达式等)来执行该配置内容中的测试用例。在一些实施例中,第一服务器可以基于用户在测试控制客户端上针对某个测试模板发起的某些命令,对该测试模板或该测试模板对应的测试任务执行相应的操作(例如,测试任务修改、测试任务结果查看、测试任务提交等),或者,第一服务器还可以基于用户在测试控制客户端上针对某个测试模板发起的某些命令,将这些命令发送给第二服务器,由第二服务器来对该测试模板或该测试模板对应的测试任务执行相应的操作(例如,测试任务撤销、测试任务重跑等)。作为一个示例,如图14所示,用户可以对测试模板执行的操作类型包括但不限于任务修改、任务删除、任务提交、任务撤销、查看任务详情、任务重跑、查看任务结果等。
在步骤S12中,第一服务器接收并向所述用户呈现所述第二服务器发送的、关于所述测试任务的测试报告信息。在一些实施例中,第二服务器在目标测试模板对应的测试任务执行完成(执行成功或执行异常)后,生成关于该测试任务的测试报告,该测试报告的类型包括但不限于allure报告、html报告、excel报告,不同测试类型的测试任务对应不同的测试报告生成方式,具体地,移动端UI、Web UI和接口-requests自动化测试采用pytest框架执行测试用例生成allure报告,接口-SoapUI自动化测试采用testrunner.sh命令进程执行测试用例生成组装的html报告,接口-Jmeter自动化测试采用jmeter.sh命令进程执行测试用例生成组装的html报告,安卓Monkey自动化测试采用adb-monkey命令进程执行测试用例生成组装的excel报告,IOS Monkey自动化测试采用tidevice采集测试过程中产生的性能指标生成组装的excel报告。作为一个示例,allure报告的展示形式如图15所示,html报告的展现形式如图16所示,excel报告的展示形式如图17所示。在一些实施例中,测试报告信息包括但不限于测试结果、测试日志、测试报告链接,第一服务器会将测试报告信息发送给测试控制客户端并呈现给用户,用户可以通过点击该测试报告链接查看具体的测试报告详情。作为一个示例,图6示出了一个自动化测试平台的架构图,该自动化测试平台包括系统(测试用户、测试角色、测试权限、测试菜单)管理、资源(第二服务器、测试终端)管理、项目(测试项目、测试模块、测试用户、测试用例)管理、测试管理、测试报告展示等模块,其中,测试管理模块包括测试任务申请、测试任务执行、测试任务撤销、测试任务重跑等功能,测试管理模块所能支持的测试类型包括功能测试、性能测试、接口测试、WEB测试,测试报告展示模块所能支持的展示方式包括测试平台展示、Email展示、企业微信推送。作为一个示例,图7示出了一个自动化测试平台的测试业务流程图,测试业务流程包括测试准备、测试申请、测试执行、测试结果等多个阶段,测试准备阶段包括项目管理和测试管理,测试申请阶段包括功能测试、性能测试、WEB测试、接口测试等多种测试类型,测试执行阶段包括测试任务提交、测试任务重跑、测试任务撤回等多种操作类型,测试结果阶段包括测试任务详情查看、邮件接收、企业微信消息推送等多种展示类型。作为一个示例,测试报告的推送方式包括如图18所示的测试平台报告方式、如图19所示的邮件报告方式、如图20所示的微信消息推送报告方式。
本申请通过构建一个自动化测试平台,可以通过制定出符合公司项目的标准化规范(可以理解为一套base代码对应的一个功能块规范),测试人员按需定制测试模板即可做平台端测试,流程简单操作方便可视化更清晰,通过部署多种自动化测试框架使得覆盖测试项目类型更全面,测试报告支持测试平台报告、邮件、企业微信公众号消息推送等多种展示方式,对测试结果跟踪更高效,测试报告中还会提供异常失败用例的录屏文件,对错误分析更有利。
在一些实施例中,所述方法还包括步骤S13(未示出)。在步骤S13中,第一服务器响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户输入的目标测试用例及目标测试配置文件,创建属于所述目标测试项目的目标测试模板,其中,所述目标测试模板包括所述目标测试用例及所述目标测试配置文件,所述目标测试用例从所述目标测试配置文件中读取所需的数据,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架以及所述目标测试用例执行所述目标测试模板对应的测试任务。在一些实施例中,需要先创建目标测试项目,例如,在测试项目创建页面输入该测试项目的项目名称,以完成测试项目的创建。在一些实施例中,一个测试项目下可以包括多个测试模板,响应于用户针对目标测试项目执行的测试模板创建操作,在测试模板创建页面获取用户输入的目标测试用例及目标测试配置文件,用户可以在测试控制客户端上或第一服务器上保存的多个测试用例文件(例如,xml文件、python文件、jmx文件等)中选择一个作为目标测试用例,以及,在测试控制客户端上或第一服务器上保存的多个测试配置文件中选择一个作为目标测试配置文件,然后完成目标测试模板的创建。其中,目标测试模板包括该目标测试用户及该目标测试配置文件,测试配置文件是测试数据的存放文件,把测试用例中的一些敏感信息数据或者想做参数化的数据集合等存放在一个文件中,该文件就是测试配置文件,测试用例按需从测试配置文件中读取需要的数据,例如,测试配置文件可以是ini文件,测试平台的公共库中提供了读取ini测试配置文件的封装方法,测试人员负责维护测试配置文件中的测试数据和在测试用例中引入该封装方法读取需要的测试数据。在一些实施例中,第二服务器基于该目标测试模板对应的测试类型所对应的自动化测试框架来执行该目标测试用例,以完成该目标测试模板对应的测试任务。
在一些实施例功能,所述方法还包括:第一服务器响应于所述用户执行的测试项目创建操作,获取所述用户输入的测试类型,创建一个所述测试类型对应的测试项目。在一些实施例中,一个测试项目只可以对应一种测试类型,用户在创建测试项目的时候,需要在测试项目创建页面输入(填写或选择)该测试项目对应的测试类型。在一些实施例中,在某个测试项目下的所以测试模板对应的测试类型即是该测试项目所对应的测试类型。
在一些实施例中,所述测试类型包括以下任一项:APP功能测试;WEB测试;接口测试;性能测试。在一些实施例中,APP功能测试安装包括但不限于安卓App测试(支持H5)、IOSApp测试(支持H5),WEB测试安装包括但不限于Web UI测试(支持H5),接口测试安装包括但不限于接口-requests测试、接口-SoapUI测试、接口-Jmeter测试等,性能测试安装包括但不限于安卓Monkey测试、IOS Monkey测试。
在一些实施例中,所述第二服务器根据所述目标测试模板所属的测试项目对应的测试类型,从所述多个自动化测试框架中确定所述目标测试模板对应的自动化测试框架。在一些实施例中,不同的测试类型对应不同的自动化测试框架,第二服务器将已部署的多个自动化测试框架中的与该目标测试模板所属的测试项目对应的测试类型相对于的自动化测试框架作为该目标测试模板对应的自动化测试框架。在一些实施例中,安卓App测试对应的自动化测试框架为python3+uiautomator2+weditor,IOS App测试对应的自动化测试框架为python3+wda,Web测试对应的自动化测试框架为python3+selenium+helium,接口测试对应的自动化测试框架包括但不限于SoapUI、Jmeter、Python3+requests,性能测试对应的自动化测试框架为monkeyTest(“https://github.com/Lemonzhulixin/monkeyTest”),其中,对monkeyTest进行了如下改造:添加支持Centos(原仅支持windows)、添加支持IOS(原仅支持安卓)、添加APP校验和Monkey测试前的各种准备步骤、修改测试报告Excel排版布局。
在一些实施例中,所述方法还包括:第一服务器响应于所述用户针对所述目标测试项目执行的测试组创建操作,获取所述用户输入的测试标识,创建一个属于所述目标测试项目的、所述测试标识对应的测试组;获取所述用户针对所述测试组设置的测试配置文件;其中,所述步骤S13包括:响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户在属于所述目标测试项目的一个或多个测试组中选择的目标测试组;获取所述用户在所述目标测试组对应的一个或多个测试配置文件中选择的目标测试配置文件;获取所述用户输入的目标测试用例,创建属于所述目标测试项目的目标测试模板,其中,所述目标测试模板包括所述目标测试用例、所述目标测试配置文件及所述目标测试标识。在一些实施例中,为了适用于测试项目实际有多套测试用例的需求场景下,对于一个测试项目和多套测试用例,定义用测试标识做不同套测试用例的区分,一个测试项目下可以创建一个或多个测试组,每个测试组对应一个测试标识,在创建测试组的时候需要输入该测试组对应的测试标识,不同的测试组对应不同的测试标识,每个测试组下使用的测试用例是不同的,测试人员需要根据实际项目场景做测试标识的定义和维护。在一些实施例中,用户可以针对某个测试组设置该测试组所使用的一个或多个测试配置文件,即每个测试组对应一个或多个测试配置文件。在一些实施例中,响应于用户针对目标测试项目执行的测试模板创建操作,会在测试模板创建页面中展示该测试项目下的所有测试组对应的测试标识,用户需要在该所有测试组中选择一个测试组作为目标测试组,然后会在测试模板创建页面中展示该目标测试组对应的一个或多个测试配置文件,用户需要在该一个或多个测试配置文件中选择至少一个目标测试配置文件,此外,还需要在测试控制客户端上或第一服务器上保存的多个测试用例文件中选择一个作为目标测试用例,以完成目标测试模板的创建,该目标测试模板会包括目标测试用户、目标测试配置文件以及目标测试标识。
在一些实施例中,所述方法还包括:第一服务器根据所述目标测试组对应的测试标识,在所述目标测试项目对应的项目库中查找获得所述目标测试组对应的一个或多个测试用例;其中,获取所述用户输入的测试用例,包括:获取所述用户在所述一个或多个测试用例中选择的目标测试用例。在一些实施例中,每个测试组各自对应一个或多个测试用例,根据目标测试组对应的测试标识,在目标测试项目对应的项目库(例如,git项目库)中查找获得该目标测试组对应的一个或多个测试用例,然后在测试模板创建页面中展示该一个或多个测试用例,用户需要在该一个或多个测试用例中选择至少一个测试用例作为目标测试用例。例如:项目部署环境涉及到测试、预发、生产环境且每套环境下对应的测试用例是不同的,那么这个场景需求下就可以定义测试标识是test、pre、pro,然后在测试标识页面下对测试项目-测试标识做测试组的维护,维护了测试组后,可以根据需要到测试配置页面下,选择测试项目和测试标识,按需上传测试组对应的测试配置文件即可,维护测试组对应的不同的测试配置文件,然后到测试模板页面下基于所选择的测试项目和测试标识去选择不同测试组下的测试用例和测试配置文件然后提交即可。在一些实施例中,在测试模板创建页面中选择测试项目和测试标识,会自动加载出这套测试组下的所有测试用例(git项目库下需要维护好测试标识下的测试用例的目录层级)和所有测试配置文件供选择,需要提前上传测试项目下的一个或多个测试配置文件,如果测试项目涉及多套测试标识,需要用户按需对不同测试标识下的多套测试用例分别上传每套测试用例所对应的测试配置文件,然后用户在测试模板创建页面中选择测试项目和测试标识,会自动加载出这套测试组下的在测试配置页面上传的该测试组对应的一个或多个测试配置文件供用户选择至少一个目标测试配置文件。
在一些实施例中,所述步骤S13包括:响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户输入的目标测试用例及目标测试配置文件;向所述用户呈现所述目标测试模板所属的测试项目对应的测试类型所需的一个或多个待配置字段;获取所述用户输入的至少一个待配置字段对应的配置内容,创建属于所述目标测试项目的目标测试模板,其中,所述目标测试模板包括所述目标测试用例、所述目标测试配置文件及所述配置内容,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容执行所述目标测试模板对应的测试任务。在一些实施例中,在针对目标测试项目执行测试模板创建操作的时候,会在测试模板创建页面向用户展示该目标测试模板所属的测试项目对应的测试类型所需的一个或多个待配置字段,不同的测试类型对应不同的待配置字段,有必填和非必填字段,需要测试人员根据测试项目的实际按需输入至少一个待配置字段对应的配置内容,然后完成目标测试模板的创建,该目标测试模板包括目标测试用例、目标测试配置文件及该配置内容,以使第二服务器基于该目标测试模板对应的自动化测试框架,根据该配置内容来执行该目标测试用例,以完成该目标测试模板对应的测试任务。在一些实施例中,不同测试类型对应的待配置字段如下:APP功能测试类型项目的测试模板对应的待配置字段有测试标识、测试终端、测试安装包、测试用例、测试配置文件、自定义参数、邮件接收列表、周期任务表达式等,WEB测试类型项目的测试模板对应的待配置字段有测试标识、测试用例、测试配置文件、自定义参数、邮件接收列表、周期任务表达式等,接口测试(SoapUI和Jmeter)类型项目的测试模板对应的待配置字段有测试用例、自定义参数、邮件接收列表、周期任务表达式等,接口测试(Requests)类型项目的测试模板对应的待配置字段有测试标识、测试用例、测试配置文件、自定义参数、邮件列表、周期任务表达式,性能测试类型项目的测试模板对应的待配置字段有测试终端、测试安装包、点击次数、测试标识、测试配置文件、自定义参数、邮件接收列表、周期任务表达式等。作为一个示例,如图8所示,用户在测试模板页面中创建测试模板的时候,需要填写或选择各个待配置字段对应的配置内容,然后点击保存按钮,可以在第一服务器中创建并保存该测试模板,如图9所示,可以在某个测试类型(例如,接口测试)对应的测试页面上新增一个测试,用户可以在多个测试模板中选中在图8中创建的该测试模板,此时会在该测试页面上展示该测试模板对应的各个配置内容,然后用户可以修改、保存或提交该测试模板。作为一个示例,如图10所示,在功能测试页面上展示功能测试类型对应的一个或多个已创建的测试模板,如图11所示,在WEB测试页面上展示WEB测试类型对应的一个或多个已创建的测试模板,如图12所示,在接口测试页面上展示接口测试类型对应的一个或多个已创建的测试模板,如图13所示,在性能测试页面上展示性能测试类型对应的一个或多个已创建的测试模板。
在一些实施例中,所述配置内容包括邮件发送列表;其中,所述方法还包括:第一服务器将所述测试报告信息通过邮件形式发送给所述邮件发送列表中的至少一个邮箱。在一些实施例中,当配置内容中的邮件发送列表不为空时,第一服务器会在测试执行结束后将关于该测试任务的测试报告通过邮件形式发送给邮件发送列表中的邮件接收者。
在一些实施例中,所述第一服务器已关联目标发布平台;其中,所述方法还包括:第一服务器将所述测试报告信息推送到所述目标发布平台上。在一些实施例中,若第一服务器已关联目标发布平台(例如,企业微信公众号),则第一服务器会在测试执行结束后将关于该测试任务的测试报告直接推送到该目标发布平台上,或者,将测试报告推送给该目标发布平台上的一个或多个账号(例如,第一服务器上已配置若干个接收者的微信账号),测试报告的推送消息格式包括但不限于textcard、mpnews、video等,用户可以通过文本信息和链接查看和跟踪测试报告详情。
在一些实施例中,若所述测试任务对应的测试结果为测试异常,所述测试报告信息还包括所述测试任务对应的、关于所述测试终端的录屏文件。在一些实施例中,若该测试任务对应的测试结果为测试异常,则关于该测试任务的测试报告中还包括关于该测试终端的录屏文件,若该测试终端为安卓终端,则第二服务器可以采用scrcpy+ffmpeg的方式来对该测试终端进行屏幕录制并转换成录屏文件(例如,mp4文件),若该测试终端为苹果终端,则可以采用tidevice+ffmpeg的方式来对该测试终端进行屏幕截图并生成录屏文件。该测试终端为WEB浏览器,则可以采用selenium/helium+ffmpeg的方式来对该测试终端进行屏幕截图并生成录屏文件。
在一些实施例中,所述方法还包括:若所述目标测试模板已提交,响应于所述用户针对所述目标测试模板执行的撤回操作,生成所述目标测试模板对应的撤回指令发送给所述第二服务器,以使所述第二服务器撤回执行所述目标测试模板对应的测试任务。在一些实施例中,在目标测试模板被提交后,用户可以针对该目标测试模板执行撤回操作,此时,第二服务器会撤回执行该目标测试模板对应的测试任务,并将该目标测试模板的执行记录或未执行记录全部删除,且将该目标测试模板的状态切换成未提交状态。
在一些实施例中,所述方法还包括:若所述目标测试模板已执行,响应于所述用户针对所述目标测试模板执行的重跑操作,生成所述目标测试模板对应的重跑指令发送给所述第二服务器,以使所述第二服务器重新执行所述目标测试模板对应的测试任务。在一些实施例中,在目标测试模板已被执行完成(执行成功或执行异常)后,用户可以针对该目标测试模板执行重跑操作,第二服务器会重新将该目标测试模板放在调度队列中等待调度执行,以重新执行该目标测试模板对应的测试任务。
在一些实施例中,第一服务器还可以提供测试平台管理功能,该测试平台管理功能包括但不限于提供系统管理对测试用户的角色权限和菜单做配置管理、提供资源管理对第二服务器和测试终端做配置管理、提供项目管理对测试项目、测试模块、测试用户和测试用例做配置管理、提供测试管理对测试配置文件、测试标识、测试模板做配置维护等。
在一些实施例中,不同测试类型的测试项目的测试流程差别如下:
1)功能测试
项目申请->用户添加->测试标识添加->测试配置文件上传->测试模板添加【选择测试终端和应用安装包和测试用例】->测试申请提交->查看报告和结果推送;
2)性能测试
项目申请->用户添加->测试标识添加->测试配置文件上传->测试模板添加【选择测试终端和应用安装包和点击次数】->测试申请提交->查看报告和结果推送;
3)WEB测试
项目申请->用户添加->测试标识添加->测试配置文件上传->测试模板添加【选择测试用例】->测试申请提交->查看报告和结果推送;
4)接口测试
接口测试-SoapUI:
项目申请->用户添加->模块维护->测试模板添加【选择xml测试用例】->测试申请提交->查看报告和结果推送;
接口测试-jmeter:
项目申请->用户添加->测试模板添加【选择jmx测试用例】->测试申请提交->查看报告和结果推送;
接口测试-requests:
项目申请->用户添加->测试标识添加->测试配置文件上传->测试模板添加【选择测试用例】->测试申请提交->查看报告和结果推送。
在一些实施例中,测试模板的待配置字段中的自定义参数字段是留给不同测试类型的测试模板的一个保留字段,可以按需做自定义拓展,例如,该自定义参数可以为“--reruns 0--reruns-delay 10--video True--driver firefox--login True--reinstallTrue”,关于该自定义参数的具体解释如下:
--reruns:测试用例执行的次数,默认0,适用于APP功能测试/WEB测试/接口测试-requests类型;
--reruns-delay:测试用例执行次数之间的间隔,默认0。适用于APP功能测试/WEB测试/接口测试-requests类型;
--video:是否开启每个测试用例执行期间的video记录(是否开启录屏)并在测试报告中作为附件查看,默认True开启,适用于APP功能测试/WEB测试/接口测试-requests类型;
--driver:指定WEB测试的浏览器,默认chrome(谷歌浏览器);
--login:指定MONKEY性能测试前是否需要先完成login业务操作,默认True;
--reinstall:指定MONKEY性能测试前是否需要重装测试安装包,默认False。
图2示出根据本申请一个实施例的一种用于自动化测试的方法流程图,该方法包括步骤S21和步骤S22。在步骤S21中,第二服务器接收第一服务器响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作发送的所述目标测试模板,基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架;在步骤S22中,第二服务器响应于所述测试任务执行完成,生成关于所述测试任务的测试报告信息,将所述测试报告信息发送给所述第一服务器。
在步骤S21中,第二服务器接收第一服务器响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作发送的所述目标测试模板,基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架。在一些实施例中,第一服务器是前端服务器,部署springboot框架的jar服务,第一服务器和测试控制客户端建立连接,测试人员可以通过测试控制客户端在第一服务器上做资源菜单权限服务等维护以及做自动化测试准备、申请、执行和结果查看等操作,还可以提供定时任务框架(例如,job)对测试任务做调度执行和状态变更,还可以提供测试控制客户端和后台数据库之间数据交互以及测试控制客户端和后端服务器上部署的服务之间的交互。在一些实施例中,测试模板包括但不限于测试终端、测试安装包、测试模块名称、测试标识、测试配置文件、测试用例、自定义参数、邮件发送列表、周期任务表达式等配置内容,用户可以在目标测试模板的创建页面中输入(填写或者选择)这些配置内容,然后针对该目标测试模板执行提交操作(例如,点击“提交”按钮),将该目标测试模板发送给第二服务器。在一些实施例中,测试模板对应多种测试类型,该测试类型包括但不限于APP功能测试、性能测试、接口测试、WEB测试等,针对不同测试类型的测试模板,用户需要输入不同的配置内容,按需定制维护测试模板。在一些实施例中,第二服务器是后端服务器,部署移动端(android和ios)UI、Web UI、接口、monkey性能等多个自动化测试框架全方位支持多纬度自动化测试,提供代码文件(例如,python文件)供第一服务器调起完成测试执行、结果报告生成推送以及与后台数据库的测试数据交互,部署tomcat服务和python-http服务存放测试结果文件供第一服务器访问,部署python的哨兵进程支持测试终端的状态监控;部署atxserver2服务支持对测试终端的实时访问和调试,部署nfs文件服务支持服务端集群间的文件共享等。在一些实施例中,第二服务器已与测试终端建立连接,该连接可以是无线连接(例如,WiFi连接),或者,还可以是有线连接(例如,usb连接)。在一些实施例中,第二服务器会将目标测试模板放在调度队列中等待调度执行,当调度到目标测试模板的时候,会基于该目标测试模板对应的测试类型所对应的自动化测试框架来执行该目标测试模板对应的测试任务,具体地,可以是通过配置内容中的某些信息(例如,测试配置文件、自定义参数、周期任务表达式等)来执行该配置内容中的测试用例。在一些实施例中,第一服务器可以基于用户在测试控制客户端上发起的某些命令,执行相应的操作(例如,测试任务修改、测试任务结果查看、测试任务提交等),或者,第一服务器还可以基于用户在测试控制客户端上发起的某些命令,将这些命令发送给第二服务器,由第二服务器来执行相应的操作(例如,测试任务撤销、测试任务重跑等)。
在步骤S22中,第二服务器响应于所述测试任务执行完成,生成关于所述测试任务的测试报告信息,将所述测试报告信息发送给所述第一服务器。在一些实施例中,第二服务器在目标测试模板对应的测试任务执行完成(执行成功或执行异常)后,生成关于该测试任务的测试报告,该测试报告的类型包括但不限于allure报告、html报告、excel报告,不同测试类型的测试任务对应不同的测试报告生成方式,具体地,移动端UI、Web UI和接口-requests自动化测试采用pytest框架执行测试用例生成allure报告,接口-SoapUI自动化测试采用testrunner.sh命令进程执行测试用例生成组装的html报告,接口-Jmeter自动化测试采用jmeter.sh命令进程执行测试用例生成组装的html报告,安卓Monkey自动化测试采用adb-monkey命令进程执行测试用例生成组装的excel报告,IOS Monkey自动化测试采用tidevice采集测试过程中产生的性能指标生成组装的excel报告。在一些实施例中,测试报告信息包括但不限于测试结果、测试日志、测试报告链接,第一服务器会将测试报告信息发送给测试控制客户端并呈现给用户,用户可以通过点击该测试报告链接查看具体的测试报告详情。
在一些实施例中,所述第一服务器响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户输入的目标测试用例及目标测试配置文件,创建属于所述目标测试项目的目标测试模板,其中,所述目标测试模板包括所述目标测试用例及所述目标测试配置文件;其中,所述基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,包括步骤S23(未示出)。在步骤S23中,第二服务器基于所述目标测试模板对应的自动化测试框架以及所述目标测试用例执行所述目标测试模板对应的测试任务,其中,所述目标测试用例从所述目标测试配置文件中读取所需的数据。在一些实施例中,需要先创建目标测试项目,例如,在测试项目创建页面输入该测试项目的项目名称,以完成测试项目的创建。在一些实施例中,一个测试项目下可以包括多个测试模板,响应于用户针对目标测试项目执行的测试模板创建操作,在测试模板创建页面获取用户输入的目标测试用例及目标测试配置文件,用户可以在测试控制客户端上或第一服务器上保存的多个测试用例文件(例如,xml文件、python文件、jmx文件等)中选择一个作为目标测试用例,以及,在测试控制客户端上或第一服务器上保存的多个测试配置文件中选择一个作为目标测试配置文件,然后完成目标测试模板的创建。其中,目标测试模板包括该目标测试用户及该目标测试配置文件,测试配置文件是测试数据的存放文件,把测试用例中的一些敏感信息数据或者想做参数化的数据集合等存放在一个文件中,该文件就是测试配置文件,测试用例按需从测试配置文件中读取需要的数据,例如,测试配置文件可以是ini文件,测试平台的公共库中提供了读取ini测试配置文件的封装方法,测试人员负责维护测试配置文件中的测试数据和在测试用例中引入该封装方法读取需要的测试数据。在一些实施例中,第二服务器基于该目标测试模板对应的测试类型所对应的自动化测试框架来执行该目标测试用例,以完成该目标测试模板对应的测试任务。
在一些实施例中,所述方法还包括:第二服务器根据所述目标测试模板所属的测试项目对应的测试类型,从所述多个自动化测试框架中确定所述目标测试模板对应的自动化测试框架。在一些实施例中,一个测试项目只可以对应一种测试类型,用户在创建测试项目的时候,需要在测试项目创建页面输入(填写或选择)该测试项目对应的测试类型。在一些实施例中,在某个测试项目下的所以测试模板对应的测试类型即是该测试项目所对应的测试类型。在一些实施例中,APP功能测试安装包括但不限于安卓App测试(支持H5)、IOSApp测试(支持H5),WEB测试安装包括但不限于Web UI测试(支持H5),接口测试安装包括但不限于接口-requests测试、接口-SoapUI测试、接口-Jmeter测试等,性能测试安装包括但不限于安卓Monkey测试、IOS Monkey测试。在一些实施例中,不同的测试类型对应不同的自动化测试框架,第二服务器将已部署的多个自动化测试框架中的与该目标测试模板所属的测试项目对应的测试类型相对于的自动化测试框架作为该目标测试模板对应的自动化测试框架。在一些实施例中,安卓App测试对应的自动化测试框架为python3+uiautomator2+weditor,IOS App测试对应的自动化测试框架为python3+wda,Web测试对应的自动化测试框架为python3+selenium+helium,接口测试对应的自动化测试框架包括但不限于SoapUI、Jmeter、Python3+requests,性能测试对应的自动化测试框架为monkeyTest(“https://github.com/Lemonzhulixin/monkeyTest”),其中,对monkeyTest进行了如下改造:添加支持Centos(原仅支持windows)、添加支持IOS(原仅支持安卓)、添加APP校验和Monkey测试前的各种准备步骤、修改测试报告Excel排版布局。
在一些实施例中,所述目标测试模板还包括所述测试类型所需的至少一个待配置字段对应的配置内容;其中,所述步骤S23包括:基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容执行所述目标测试模板对应的测试任务。在一些实施例中,在针对目标测试项目执行测试模板创建操作的时候,会在测试模板创建页面向用户展示该目标测试模板所属的测试项目对应的测试类型所需的一个或多个待配置字段,不同的测试类型对应不同的待配置字段,有必填和非必填字段,需要测试人员根据测试项目的实际按需输入至少一个待配置字段对应的配置内容,然后完成目标测试模板的创建,该目标测试模板包括目标测试用例、目标测试配置文件及该配置内容,以使第二服务器基于该目标测试模板对应的自动化测试框架,根据该配置内容来执行该目标测试用例,以完成该目标测试模板对应的测试任务。在一些实施例中,不同测试类型对应的待配置字段如下:APP功能测试类型项目的测试模板对应的待配置字段有测试标识、测试终端、测试安装包、测试用例、测试配置文件、自定义参数、邮件接收列表、周期任务表达式等,WEB测试类型项目的测试模板对应的待配置字段有测试标识、测试用例、测试配置文件、自定义参数、邮件接收列表、周期任务表达式等,接口测试(SoapUI和Jmeter)类型项目的测试模板对应的待配置字段有测试用例、自定义参数、邮件接收列表、周期任务表达式等,接口测试(Requests)类型项目的测试模板对应的待配置字段有测试标识、测试用例、测试配置文件、自定义参数、邮件列表、周期任务表达式,性能测试类型项目的测试模板对应的待配置字段有测试终端、测试安装包、点击次数、测试标识、测试配置文件、自定义参数、邮件接收列表、周期任务表达式等。
在一些实施例中,所述配置信息包括周期任务表达式;其中,所述基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容执行所述目标测试模板对应的测试任务,包括:根据所述周期任务表达式,将所述目标测试模板对应的测试任务周期性裂变为多个第一子任务,基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容分别执行每个第一子任务。在一些实施例中,若配置信息中包括周期任务表达式(例如,cron表达式),则第二服务器会将目标测试模板对应的测试任务(即父任务)周期性分裂出来一条条子任务执行。
在一些实施例中,所述配置信息包括多个测试安装包;其中,所述基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容执行所述目标测试模板对应的测试任务,包括:响应于在所述测试终端上分别安装每个测试安装包,将所述目标测试模板对应的测试任务裂变为多个第二子任务,基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容分别执行每个第二子任务。在一些实施例中,若测试类型为APP功能测试或MONKEY性能测试,则用户可以在测试模板创建页面中上传一个或多个测试安装包,在这种情况下,第二服务器会将目标测试模板对应的测试任务(即父任务)分裂成多条子任务执行,其中,在测试终端上分别安装每个测试安装包后,会将测试任务裂变成一个新的子任务,即每个测试安装包对应一个子任务,每个子任务用于对该多个测试安装包中的其中一个测试安装包进行自动化测试。
在一些实施例中,所述配置内容包括邮件发送列表;其中,所述方法还包括:第二服务器将所述测试报告信息通过邮件形式发送给所述邮件发送列表中的至少一个邮箱。在一些实施例中,当配置内容中的邮件发送列表不为空时,第二服务器会在测试执行结束后将关于该测试任务的测试报告通过邮件形式发送给邮件发送列表中的邮件接收者。
在一些实施例中,所述第二服务器已关联目标发布平台的账号;其中,所述方法还包括:第二服务器将所述测试报告信息推送到所述发布平台上。在一些实施例中,若第二服务器已关联目标发布平台(例如,企业微信公众号),则第二服务器会在测试执行结束后将关于该测试任务的测试报告直接推送到该目标发布平台上,或者,将测试报告推送给该目标发布平台上的一个或多个账号(例如,第二服务器上已配置若干个接收者的微信账号),测试报告的推送消息格式包括但不限于textcard、mpnews、video等,用户可以通过文本信息和链接查看和跟踪测试报告详情。
在一些实施例中,若所述测试任务对应的测试结果为测试异常,所述测试报告信息还包括所述测试任务对应的、关于所述测试终端的录屏文件,所述目标测试用例中已引入固定基线,所述固定基线的前置逻辑包括开启录屏,所述固定基线的后置逻辑包括关闭录屏,以使所述自动化测试框架根据所述固定基线对所述终端设备进行录屏并获得所述录屏文件。在一些实施例中,测试人员在编写测试用例时,会按需在conftest.py(自动化执行pytest框架的配置文件,结合固定基线可以实现测试用例执行前置/后置逻辑)中定义固定基线(例如,fixture)引入测试平台的公共库提供的开启录屏和关闭录屏的封装方法,然后在需要录屏的测试用例里以参数的方式引入该fixture,即可实现测试用例内容执行前先执行fixture的前置逻辑即开启录屏,测试用例内容执行后再执行fixture的后置逻辑即关闭录屏。
在一些实施例中,所述配置内容包括录屏指示信息,以使所述自动化测试框架根据所述录屏指示信息确定是否对所述终端设备进行录屏。在一些实施例中,在创建测试模板的时候,可以通过待配置字段中的自定义参数字段中的录屏指示信息(例如,videoTrue/False参数)指定是否开启该测试模板中的测试用例执行的video录制(是否开启录屏),默认True。在一些实施例中,在测试模板被提交后,第二服务调度执行时,第二服务器会获取该video参数,pytest自动化框架执行测试用例时,按照该测试用例的fixture引入逻辑执行,若获取到的video参数为True则去执行开启/关闭录屏,该video参数为False的情况下则不执行。
在一些实施例中,所述方法还包括:若所述自动化测试框架捕捉到所述测试任务对应的测试结果为测试异常,通过调用所述自动化测试框架提供的钩子函数,将所述录屏文件作为附件放入所述测试报告信息中。在一些实施例中,测试用例执行过程中对测试终端进行录屏获得的录屏文件可以通过对pytest框架提供的钩子函数pytest_runtest_makereport(item,call)再定义从而实现pytest框架捕捉到测试用例执行异常时把该录屏文件作为测试报告的附件供测试人员查看。在一些实施例中,测试任务执行结束后生成的测试报告中,在执行异常的测试用例下可以点开查看该测试用例从开始到异常这中间的录屏文件,执行成功的测试用例不会有该附件生成。
在一些实施例中,所述方法还包括:若所述目标测试模板已提交,响应于接收到所述第一服务器发送的所述目标测试模板对应的撤回指令,撤回执行所述目标测试模板对应的测试任务,其中,所述撤回执行是所述第一服务器响应于所述用户针对所述目标测试模板执行的撤回操作生成的。在一些实施例中,在目标测试模板被提交后,用户可以针对该目标测试模板执行撤回操作,此时,第二服务器会撤回执行该目标测试模板对应的测试任务,并将该目标测试模板的执行记录或未执行记录全部删除,且将该目标测试模板的状态切换成未提交状态。
在一些实施例中,所述方法还包括:若所述目标测试模板已执行,响应于接收到所述第一服务器发送的所述目标测试模板对应的重跑指令,重新执行所述目标测试模板对应的测试任务,其中,所述重跑指令是所述第一服务器响应于所述用户针对所述目标测试模板执行的重跑操作生成的。在一些实施例中,在目标测试模板已被执行完成(执行成功或执行异常)后,用户可以针对该目标测试模板执行重跑操作,第二服务器会重新将该目标测试模板放在调度队列中等待调度执行,以重新执行该目标测试模板对应的测试任务。
图3示出根据本申请一个实施例的一种用于自动化测试的系统方法流程图。
如图3所示,在步骤S31中,第一服务器响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作,将所述目标测试模板发送给第二服务器,该步骤与前述步骤S11相同或相似,在此不再赘述;在步骤S32中,所述第二服务器接收所述目标测试模板,基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架,该步骤与前述步骤S21相同或相似,在此不再赘述;在步骤S33中,所述第二服务器响应于所述测试任务执行完成,生成关于所述测试任务的测试报告信息,将所述测试报告信息发送给所述第一服务器,该步骤与前述步骤S22相同或相似,在此不再赘述;在步骤S34中,所述第一服务器接收并向所述用户呈现所述测试报告信息,该步骤与前述步骤S12相同或相似,在此不再赘述。
图4示出根据本申请一个实施例的一种用于自动化测试的第一服务器结构图,该第一服务器包括一一模块11和一二模块12。一一模块11,用于响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作,将所述目标测试模板发送给第二服务器,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架;一二模块12,用于接收并向所述用户呈现所述第二服务器发送的、关于所述测试任务的测试报告信息。
一一模块11,用于响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作,将所述目标测试模板发送给第二服务器,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架。在一些实施例中,第一服务器是前端服务器,部署springboot框架的jar服务,第一服务器和测试控制客户端建立连接,测试人员可以通过测试控制客户端在第一服务器上做资源菜单权限服务等维护以及做自动化测试准备、申请、执行和结果查看等操作,还可以提供定时任务框架(例如,job)对测试任务做调度执行和状态变更,还可以提供测试控制客户端和后台数据库之间数据交互以及测试控制客户端和后端服务器上部署的服务之间的交互。在一些实施例中,测试模板包括但不限于测试终端、测试安装包、测试模块名称、测试标识、测试配置文件、测试用例、自定义参数、邮件发送列表、周期任务表达式等配置内容,用户可以在目标测试模板的创建页面中输入(填写或者选择)这些配置内容,然后针对该目标测试模板执行提交操作(例如,点击“提交”按钮),将该目标测试模板发送给第二服务器。在一些实施例中,测试模板对应多种测试类型,该测试类型包括但不限于APP功能测试、性能测试、接口测试、WEB测试等,针对不同测试类型的测试模板,用户需要输入不同的配置内容,按需定制维护测试模板。在一些实施例中,第二服务器是后端服务器,部署移动端(android和ios)UI、WebUI、接口、monkey性能等多个自动化测试框架全方位支持多纬度自动化测试,提供代码文件(例如,python文件)供第一服务器调起完成测试执行、结果报告生成推送以及与后台数据库的测试数据交互,部署tomcat服务和python-http服务存放测试结果文件供第一服务器访问,部署python的哨兵进程支持测试终端的状态监控;部署atxserver2服务支持对测试终端的实时访问和调试,部署nfs文件服务支持服务端集群间的文件共享等。在一些实施例中,第二服务器已与测试终端建立连接,该连接可以是无线连接(例如,WiFi连接),或者,还可以是有线连接(例如,usb连接)。在一些实施例中,第二服务器会将目标测试模板放在调度队列中等待调度执行,当调度到目标测试模板的时候,会基于该目标测试模板对应的测试类型所对应的自动化测试框架来执行该目标测试模板对应的测试任务,具体地,可以是通过配置内容中的某些信息(例如,测试配置文件、自定义参数、周期任务表达式等)来执行该配置内容中的测试用例。在一些实施例中,第一服务器可以基于用户在测试控制客户端上针对某个测试模板发起的某些命令,对该测试模板或该测试模板对应的测试任务执行相应的操作(例如,测试任务修改、测试任务结果查看、测试任务提交等),或者,第一服务器还可以基于用户在测试控制客户端上针对某个测试模板发起的某些命令,将这些命令发送给第二服务器,由第二服务器来对该测试模板或该测试模板对应的测试任务执行相应的操作(例如,测试任务撤销、测试任务重跑等)。作为一个示例,如图14所示,用户可以对测试模板执行的操作类型包括但不限于任务修改、任务删除、任务提交、任务撤销、查看任务详情、任务重跑、查看任务结果等。
一二模块12,用于接收并向所述用户呈现所述第二服务器发送的、关于所述测试任务的测试报告信息。在一些实施例中,第二服务器在目标测试模板对应的测试任务执行完成(执行成功或执行异常)后,生成关于该测试任务的测试报告,该测试报告的类型包括但不限于allure报告、html报告、excel报告,不同测试类型的测试任务对应不同的测试报告生成方式,具体地,移动端UI、Web UI和接口-requests自动化测试采用pytest框架执行测试用例生成allure报告,接口-SoapUI自动化测试采用testrunner.sh命令进程执行测试用例生成组装的html报告,接口-Jmeter自动化测试采用jmeter.sh命令进程执行测试用例生成组装的html报告,安卓Monkey自动化测试采用adb-monkey命令进程执行测试用例生成组装的excel报告,IOS Monkey自动化测试采用tidevice采集测试过程中产生的性能指标生成组装的excel报告。作为一个示例,allure报告的展示形式如图15所示,html报告的展现形式如图16所示,excel报告的展示形式如图17所示。在一些实施例中,测试报告信息包括但不限于测试结果、测试日志、测试报告链接,第一服务器会将测试报告信息发送给测试控制客户端并呈现给用户,用户可以通过点击该测试报告链接查看具体的测试报告详情。作为一个示例,图6示出了一个自动化测试平台的架构图,该自动化测试平台包括系统(测试用户、测试角色、测试权限、测试菜单)管理、资源(第二服务器、测试终端)管理、项目(测试项目、测试模块、测试用户、测试用例)管理、测试管理、测试报告展示等模块,其中,测试管理模块包括测试任务申请、测试任务执行、测试任务撤销、测试任务重跑等功能,测试管理模块所能支持的测试类型包括功能测试、性能测试、接口测试、WEB测试,测试报告展示模块所能支持的展示方式包括测试平台展示、Email展示、企业微信推送。作为一个示例,图7示出了一个自动化测试平台的测试业务流程图,测试业务流程包括测试准备、测试申请、测试执行、测试结果等多个阶段,测试准备阶段包括项目管理和测试管理,测试申请阶段包括功能测试、性能测试、WEB测试、接口测试等多种测试类型,测试执行阶段包括测试任务提交、测试任务重跑、测试任务撤回等多种操作类型,测试结果阶段包括测试任务详情查看、邮件接收、企业微信消息推送等多种展示类型。作为一个示例,测试报告的推送方式包括如图18所示的测试平台报告方式、如图19所示的邮件报告方式、如图20所示的微信消息推送报告方式。
在一些实施例中,所述第一服务器还包括一三模块13(未示出)。一三模块13,用于响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户输入的目标测试用例及目标测试配置文件,创建属于所述目标测试项目的目标测试模板,其中,所述目标测试模板包括所述目标测试用例及所述目标测试配置文件,所述目标测试用例从所述目标测试配置文件中读取所需的数据,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架以及所述目标测试用例执行所述目标测试模板对应的测试任务。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例功能,所述设备还用于:响应于所述用户执行的测试项目创建操作,获取所述用户输入的测试类型,创建一个所述测试类型对应的测试项目。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述测试类型包括以下任一项:APP功能测试;WEB测试;接口测试;性能测试。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述第二服务器根据所述目标测试模板所属的测试项目对应的测试类型,从所述多个自动化测试框架中确定所述目标测试模板对应的自动化测试框架。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述设备还用于:响应于所述用户针对所述目标测试项目执行的测试组创建操作,获取所述用户输入的测试标识,创建一个属于所述目标测试项目的、所述测试标识对应的测试组;获取所述用户针对所述测试组设置的测试配置文件;其中,所述一三模块13用于:响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户在属于所述目标测试项目的一个或多个测试组中选择的目标测试组;获取所述用户在所述目标测试组对应的一个或多个测试配置文件中选择的目标测试配置文件;获取所述用户输入的目标测试用例,创建属于所述目标测试项目的目标测试模板,其中,所述目标测试模板包括所述目标测试用例、所述目标测试配置文件及所述目标测试标识。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述设备还用于:根据所述目标测试组对应的测试标识,在所述目标测试项目对应的项目库中查找获得所述目标测试组对应的一个或多个测试用例;其中,获取所述用户输入的测试用例,包括:获取所述用户在所述一个或多个测试用例中选择的目标测试用例。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述一三模块13用于:响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户输入的目标测试用例及目标测试配置文件;向所述用户呈现所述目标测试模板所属的测试项目对应的测试类型所需的一个或多个待配置字段;获取所述用户输入的至少一个待配置字段对应的配置内容,创建属于所述目标测试项目的目标测试模板,其中,所述目标测试模板包括所述目标测试用例、所述目标测试配置文件及所述配置内容,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容执行所述目标测试模板对应的测试任务。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述配置内容包括邮件发送列表;其中,所述设备还用于:将所述测试报告信息通过邮件形式发送给所述邮件发送列表中的至少一个邮箱。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述第一服务器已关联目标发布平台;其中,所述设备还用于:将所述测试报告信息推送到所述目标发布平台上。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,若所述测试任务对应的测试结果为测试异常,所述测试报告信息还包括所述测试任务对应的、关于所述测试终端的录屏文件。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述设备还用于:若所述目标测试模板已提交,响应于所述用户针对所述目标测试模板执行的撤回操作,生成所述目标测试模板对应的撤回指令发送给所述第二服务器,以使所述第二服务器撤回执行所述目标测试模板对应的测试任务。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述设备还用于:若所述目标测试模板已执行,响应于所述用户针对所述目标测试模板执行的重跑操作,生成所述目标测试模板对应的重跑指令发送给所述第二服务器,以使所述第二服务器重新执行所述目标测试模板对应的测试任务。在此,相关操作与图1所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
图5示出根据本申请一个实施例的一种用于自动化测试的第二服务器结构图,该第二服务器包括二一模块21和二二模块22。二一模块21,用于接收第一服务器响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作发送的所述目标测试模板,基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架;二二模块22,用于响应于所述测试任务执行完成,生成关于所述测试任务的测试报告信息,将所述测试报告信息发送给所述第一服务器。
二一模块21,用于接收第一服务器响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作发送的所述目标测试模板,基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架。在一些实施例中,第一服务器是前端服务器,部署springboot框架的jar服务,第一服务器和测试控制客户端建立连接,测试人员可以通过测试控制客户端在第一服务器上做资源菜单权限服务等维护以及做自动化测试准备、申请、执行和结果查看等操作,还可以提供定时任务框架(例如,job)对测试任务做调度执行和状态变更,还可以提供测试控制客户端和后台数据库之间数据交互以及测试控制客户端和后端服务器上部署的服务之间的交互。在一些实施例中,测试模板包括但不限于测试终端、测试安装包、测试模块名称、测试标识、测试配置文件、测试用例、自定义参数、邮件发送列表、周期任务表达式等配置内容,用户可以在目标测试模板的创建页面中输入(填写或者选择)这些配置内容,然后针对该目标测试模板执行提交操作(例如,点击“提交”按钮),将该目标测试模板发送给第二服务器。在一些实施例中,测试模板对应多种测试类型,该测试类型包括但不限于APP功能测试、性能测试、接口测试、WEB测试等,针对不同测试类型的测试模板,用户需要输入不同的配置内容,按需定制维护测试模板。在一些实施例中,第二服务器是后端服务器,部署移动端(android和ios)UI、Web UI、接口、monkey性能等多个自动化测试框架全方位支持多纬度自动化测试,提供代码文件(例如,python文件)供第一服务器调起完成测试执行、结果报告生成推送以及与后台数据库的测试数据交互,部署tomcat服务和python-http服务存放测试结果文件供第一服务器访问,部署python的哨兵进程支持测试终端的状态监控;部署atxserver2服务支持对测试终端的实时访问和调试,部署nfs文件服务支持服务端集群间的文件共享等。在一些实施例中,第二服务器已与测试终端建立连接,该连接可以是无线连接(例如,WiFi连接),或者,还可以是有线连接(例如,usb连接)。在一些实施例中,第二服务器会将目标测试模板放在调度队列中等待调度执行,当调度到目标测试模板的时候,会基于该目标测试模板对应的测试类型所对应的自动化测试框架来执行该目标测试模板对应的测试任务,具体地,可以是通过配置内容中的某些信息(例如,测试配置文件、自定义参数、周期任务表达式等)来执行该配置内容中的测试用例。在一些实施例中,第一服务器可以基于用户在测试控制客户端上发起的某些命令,执行相应的操作(例如,测试任务修改、测试任务结果查看、测试任务提交等),或者,第一服务器还可以基于用户在测试控制客户端上发起的某些命令,将这些命令发送给第二服务器,由第二服务器来执行相应的操作(例如,测试任务撤销、测试任务重跑等)。
二二模块22,用于响应于所述测试任务执行完成,生成关于所述测试任务的测试报告信息,将所述测试报告信息发送给所述第一服务器。在一些实施例中,第二服务器在目标测试模板对应的测试任务执行完成(执行成功或执行异常)后,生成关于该测试任务的测试报告,该测试报告的类型包括但不限于allure报告、html报告、excel报告,不同测试类型的测试任务对应不同的测试报告生成方式,具体地,移动端UI、Web UI和接口-requests自动化测试采用pytest框架执行测试用例生成allure报告,接口-SoapUI自动化测试采用testrunner.sh命令进程执行测试用例生成组装的html报告,接口-Jmeter自动化测试采用jmeter.sh命令进程执行测试用例生成组装的html报告,安卓Monkey自动化测试采用adb-monkey命令进程执行测试用例生成组装的excel报告,IOS Monkey自动化测试采用tidevice采集测试过程中产生的性能指标生成组装的excel报告。在一些实施例中,测试报告信息包括但不限于测试结果、测试日志、测试报告链接,第一服务器会将测试报告信息发送给测试控制客户端并呈现给用户,用户可以通过点击该测试报告链接查看具体的测试报告详情。
在一些实施例中,所述第一服务器响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户输入的目标测试用例及目标测试配置文件,创建属于所述目标测试项目的目标测试模板,其中,所述目标测试模板包括所述目标测试用例及所述目标测试配置文件;其中,所述基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,包括二三模块23(未示出)。二三模块23,用于基于所述目标测试模板对应的自动化测试框架以及所述目标测试用例执行所述目标测试模板对应的测试任务,其中,所述目标测试用例从所述目标测试配置文件中读取所需的数据。在此,相关操作与图2所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述设备还用于:根据所述目标测试模板所属的测试项目对应的测试类型,从所述多个自动化测试框架中确定所述目标测试模板对应的自动化测试框架。在此,相关操作与图2所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述目标测试模板还包括所述测试类型所需的至少一个待配置字段对应的配置内容;其中,所述二三模块23用于:基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容执行所述目标测试模板对应的测试任务。在此,相关操作与图2所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述配置信息包括周期任务表达式;其中,所述基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容执行所述目标测试模板对应的测试任务,包括:根据所述周期任务表达式,将所述目标测试模板对应的测试任务周期性裂变为多个第一子任务,基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容分别执行每个第一子任务。在此,相关操作与图2所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述配置信息包括多个测试安装包;其中,所述基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容执行所述目标测试模板对应的测试任务,包括:响应于在所述测试终端上分别安装每个测试安装包,将所述目标测试模板对应的测试任务裂变为多个第二子任务,基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容分别执行每个第二子任务。在此,相关操作与图2所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述配置内容包括邮件发送列表;其中,所述设备还用于:将所述测试报告信息通过邮件形式发送给所述邮件发送列表中的至少一个邮箱。在此,相关操作与图2所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述第二服务器已关联目标发布平台的账号;其中,所述设备还用于:将所述测试报告信息推送到所述发布平台上。在此,相关操作与图2所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,若所述测试任务对应的测试结果为测试异常,所述测试报告信息还包括所述测试任务对应的、关于所述测试终端的录屏文件,所述目标测试用例中已引入固定基线,所述固定基线的前置逻辑包括开启录屏,所述固定基线的后置逻辑包括关闭录屏,以使所述自动化测试框架根据所述固定基线对所述终端设备进行录屏并获得所述录屏文件。在此,相关操作与图2所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述配置内容包括录屏指示信息,以使所述自动化测试框架根据所述录屏指示信息确定是否对所述终端设备进行录屏。在此,相关操作与图2所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述设备还用于:若所述自动化测试框架捕捉到所述测试任务对应的测试结果为测试异常,通过调用所述自动化测试框架提供的钩子函数,将所述录屏文件作为附件放入所述测试报告信息中。在此,相关操作与图2所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述设备还用于:若所述目标测试模板已提交,响应于接收到所述第一服务器发送的所述目标测试模板对应的撤回指令,撤回执行所述目标测试模板对应的测试任务,其中,所述撤回执行是所述第一服务器响应于所述用户针对所述目标测试模板执行的撤回操作生成的。在此,相关操作与图2所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
在一些实施例中,所述设备还用于:若所述目标测试模板已执行,响应于接收到所述第一服务器发送的所述目标测试模板对应的重跑指令,重新执行所述目标测试模板对应的测试任务,其中,所述重跑指令是所述第一服务器响应于所述用户针对所述目标测试模板执行的重跑操作生成的。在此,相关操作与图2所示实施例相同或相近,故不再赘述,在此以引用方式包含于此。
除上述各实施例介绍的方法和设备外,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
图21示出了可被用于实施本申请中所述的各个实施例的示例性系统;
如图21所示在一些实施例中,系统300能够作为各所述实施例中的任意一个设备。在一些实施例中,系统300可包括具有指令的一个或多个计算机可读介质(例如,系统存储器或NVM/存储设备320)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器305)。
对于一个实施例,系统控制模块310可包括任意适当的接口控制器,以向(一个或多个)处理器305中的至少一个和/或与系统控制模块310通信的任意适当的设备或组件提供任意适当的接口。
系统控制模块310可包括存储器控制器模块330,以向系统存储器315提供接口。存储器控制器模块330可以是硬件模块、软件模块和/或固件模块。
系统存储器315可被用于例如为系统300加载和存储数据和/或指令。对于一个实施例,系统存储器315可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,系统存储器315可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,系统控制模块310可包括一个或多个输入/输出(I/O)控制器,以向NVM/存储设备320及(一个或多个)通信接口325提供接口。
例如,NVM/存储设备320可被用于存储数据和/或指令。NVM/存储设备320可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备320可包括在物理上作为系统300被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备320可通过网络经由(一个或多个)通信接口325进行访问。
(一个或多个)通信接口325可为系统300提供接口以通过一个或多个网络和/或与任意其他适当的设备通信。系统300可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信。
对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器(例如,存储器控制器模块330)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,系统300可以但不限于是:服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)。在各个实施例中,系统300可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统300包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (30)

1.一种用于自动化测试的方法,应用于第一服务器,其中,该方法包括:
响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作,将所述目标测试模板发送给第二服务器,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架;
接收并向所述用户呈现所述第二服务器发送的、关于所述测试任务的测试报告信息。
2.根据权利要求1所述的方法,其中,所述方法还包括:
响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户输入的目标测试用例及目标测试配置文件,创建属于所述目标测试项目的目标测试模板,其中,所述目标测试模板包括所述目标测试用例及所述目标测试配置文件,所述目标测试用例从所述目标测试配置文件中读取所需的数据,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架以及所述目标测试用例执行所述目标测试模板对应的测试任务。
3.根据权利要求2所述的方法,其中,所述方法还包括:
响应于所述用户执行的测试项目创建操作,获取所述用户输入的测试类型,创建一个所述测试类型对应的测试项目。
4.根据权利要求3所述的方法,其中,所述测试类型包括以下任一项:
APP功能测试;
WEB测试;
接口测试;
性能测试。
5.根据权利要求3所述的方法,其中,所述第二服务器根据所述目标测试模板所属的测试项目对应的测试类型,从所述多个自动化测试框架中确定所述目标测试模板对应的自动化测试框架。
6.根据权利要求2所述的方法,其中,所述方法还包括:
响应于所述用户针对所述目标测试项目执行的测试组创建操作,获取所述用户输入的测试标识,创建一个属于所述目标测试项目的、所述测试标识对应的测试组;
获取所述用户针对所述测试组设置的测试配置文件;
其中,所述响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户输入的目标测试用例及目标测试配置文件,创建属于所述目标测试项目的目标测试模板,包括:
响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户在属于所述目标测试项目的一个或多个测试组中选择的目标测试组;、
获取所述用户在所述目标测试组对应的一个或多个测试配置文件中选择的目标测试配置文件;
获取所述用户输入的目标测试用例,创建属于所述目标测试项目的目标测试模板,其中,所述目标测试模板包括所述目标测试用例、所述目标测试配置文件及所述目标测试标识。
7.根据权利要求6所述的方法,其中,所述方法还包括:
根据所述目标测试组对应的测试标识,在所述目标测试项目对应的项目库中查找获得所述目标测试组对应的一个或多个测试用例;
其中,获取所述用户输入的测试用例,包括:
获取所述用户在所述一个或多个测试用例中选择的目标测试用例。
8.根据权利要求3所述的方法,其中,所述响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户输入的目标测试用例及目标测试配置文件,创建属于所述目标测试项目的目标测试模板,包括:
响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户输入的目标测试用例及目标测试配置文件;
向所述用户呈现所述目标测试模板所属的测试项目对应的测试类型所需的一个或多个待配置字段;
获取所述用户输入的至少一个待配置字段对应的配置内容,创建属于所述目标测试项目的目标测试模板,其中,所述目标测试模板包括所述目标测试用例、所述目标测试配置文件及所述配置内容,以使所述第二服务器基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容执行所述目标测试模板对应的测试任务。
9.根据权利要求8所述的方法,其中,所述配置内容包括邮件发送列表;
其中,所述方法还包括:
将所述测试报告信息通过邮件形式发送给所述邮件发送列表中的至少一个邮箱。
10.根据权利要求8所述的方法,其中,所述第一服务器已关联目标发布平台;
其中,所述方法还包括:
将所述测试报告信息推送到所述目标发布平台上。
11.根据权利要求1所述的方法,其中,若所述测试任务对应的测试结果为测试异常,所述测试报告信息还包括所述测试任务对应的、关于所述测试终端的录屏文件。
12.根据权利要求1所述的方法,其中,所述方法还包括:
若所述目标测试模板已提交,响应于所述用户针对所述目标测试模板执行的撤回操作,生成所述目标测试模板对应的撤回指令发送给所述第二服务器,以使所述第二服务器撤回执行所述目标测试模板对应的测试任务。
13.根据权利要求1所述的方法,其中,所述方法还包括:
若所述目标测试模板已执行,响应于所述用户针对所述目标测试模板执行的重跑操作,生成所述目标测试模板对应的重跑指令发送给所述第二服务器,以使所述第二服务器重新执行所述目标测试模板对应的测试任务。
14.一种用于自动化测试的方法,应用于第二服务器,其中,该方法包括:
接收第一服务器响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作发送的所述目标测试模板,基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架;
响应于所述测试任务执行完成,生成关于所述测试任务的测试报告信息,将所述测试报告信息发送给所述第一服务器。
15.根据权利要求14所述的方法,其中,所述第一服务器响应于所述用户针对一个或多个测试项目中的目标测试项目执行的测试模板创建操作,获取所述用户输入的目标测试用例及目标测试配置文件,创建属于所述目标测试项目的目标测试模板,其中,所述目标测试模板包括所述目标测试用例及所述目标测试配置文件;
其中,所述基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,包括:
基于所述目标测试模板对应的自动化测试框架以及所述目标测试用例执行所述目标测试模板对应的测试任务,其中,所述目标测试用例从所述目标测试配置文件中读取所需的数据。
16.根据权利要求15所述的方法,其中,所述方法还包括:
根据所述目标测试模板所属的测试项目对应的测试类型,从所述多个自动化测试框架中确定所述目标测试模板对应的自动化测试框架。
17.根据权利要求16所述的方法,其中,所述目标测试模板还包括所述测试类型所需的至少一个待配置字段对应的配置内容;
其中,所述基于所述目标测试模板对应的自动化测试框架以及所述目标测试用例执行所述目标测试模板对应的测试任务,包括:
基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容执行所述目标测试模板对应的测试任务。
18.根据权利要求17所述的方法,其中,所述配置信息包括周期任务表达式;
其中,所述基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容执行所述目标测试模板对应的测试任务,包括:
根据所述周期任务表达式,将所述目标测试模板对应的测试任务周期性裂变为多个第一子任务,基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容分别执行每个第一子任务。
19.根据权利要求17所述的方法,其中,所述配置信息包括多个测试安装包;
其中,所述基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容执行所述目标测试模板对应的测试任务,包括:
响应于在所述测试终端上分别安装每个测试安装包,将所述目标测试模板对应的测试任务裂变为多个第二子任务,基于所述目标测试模板对应的自动化测试框架、所述目标测试用例以及所述配置内容分别执行每个第二子任务。
20.根据权利要求17所述的方法,其中,所述配置内容包括邮件发送列表;
其中,所述方法还包括:
将所述测试报告信息通过邮件形式发送给所述邮件发送列表中的至少一个邮箱。
21.根据权利要求17所述的方法,其中,所述第二服务器已关联目标发布平台的账号;
其中,所述方法还包括:
将所述测试报告信息推送到所述发布平台上。
22.根据权利要求14所述的方法,其中,若所述测试任务对应的测试结果为测试异常,所述测试报告信息还包括所述测试任务对应的、关于所述测试终端的录屏文件,所述目标测试用例中已引入固定基线,所述固定基线的前置逻辑包括开启录屏,所述固定基线的后置逻辑包括关闭录屏,以使所述自动化测试框架根据所述固定基线对所述终端设备进行录屏并获得所述录屏文件。
23.根据权利要求22所述的方法,其中,所述配置内容包括录屏指示信息,以使所述自动化测试框架根据所述录屏指示信息确定是否对所述终端设备进行录屏。
24.根据权利要求22所述的方法,其中,所述方法还包括:
若所述自动化测试框架捕捉到所述测试任务对应的测试结果为测试异常,通过调用所述自动化测试框架提供的钩子函数,将所述录屏文件作为附件放入所述测试报告信息中。
25.根据权利要求14所述的方法,其中,所述方法还包括:
若所述目标测试模板已提交,响应于接收到所述第一服务器发送的所述目标测试模板对应的撤回指令,撤回执行所述目标测试模板对应的测试任务,其中,所述撤回执行是所述第一服务器响应于所述用户针对所述目标测试模板执行的撤回操作生成的。
26.根据权利要求14所述的方法,其中,所述方法还包括:
若所述目标测试模板已执行,响应于接收到所述第一服务器发送的所述目标测试模板对应的重跑指令,重新执行所述目标测试模板对应的测试任务,其中,所述重跑指令是所述第一服务器响应于所述用户针对所述目标测试模板执行的重跑操作生成的。
27.一种用于自动化测试的方法,其中,该方法包括:
第一服务器响应于用户针对一个或多个测试模板中的目标测试模板执行的提交操作,将所述目标测试模板发送给第二服务器;
所述第二服务器接收所述目标测试模板,基于所述目标测试模板对应的自动化测试框架执行所述目标测试模板对应的测试任务,其中,所述第二服务器已与测试终端建立连接,所述第二服务器已部署多个自动化测试框架;
所述第二服务器响应于所述测试任务执行完成,生成关于所述测试任务的测试报告信息,将所述测试报告信息发送给所述第一服务器;
所述第一服务器接收并向所述用户呈现所述测试报告信息。
28.一种用于自动化测试的计算机设备,其中,该设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1至27中任一项所述方法的步骤。
29.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令在被执行时使得系统进行执行如权利要求1至27中任一项所述方法的步骤。
30.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至27中任一项所述方法的步骤。
CN202210260184.XA 2022-03-16 2022-03-16 一种用于自动化测试的方法、设备、介质及程序产品 Pending CN114661594A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210260184.XA CN114661594A (zh) 2022-03-16 2022-03-16 一种用于自动化测试的方法、设备、介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210260184.XA CN114661594A (zh) 2022-03-16 2022-03-16 一种用于自动化测试的方法、设备、介质及程序产品

Publications (1)

Publication Number Publication Date
CN114661594A true CN114661594A (zh) 2022-06-24

Family

ID=82029267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210260184.XA Pending CN114661594A (zh) 2022-03-16 2022-03-16 一种用于自动化测试的方法、设备、介质及程序产品

Country Status (1)

Country Link
CN (1) CN114661594A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114968823A (zh) * 2022-07-27 2022-08-30 国能日新科技股份有限公司 自动化测试方法、装置、设备和存储介质
CN116070214A (zh) * 2022-08-30 2023-05-05 荣耀终端有限公司 一种安全测试方法及电子设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114968823A (zh) * 2022-07-27 2022-08-30 国能日新科技股份有限公司 自动化测试方法、装置、设备和存储介质
CN116070214A (zh) * 2022-08-30 2023-05-05 荣耀终端有限公司 一种安全测试方法及电子设备
CN116070214B (zh) * 2022-08-30 2024-04-02 荣耀终端有限公司 一种安全测试方法及电子设备

Similar Documents

Publication Publication Date Title
CN109933522B (zh) 一种自动化用例的测试方法、测试系统及存储介质
US20230161694A1 (en) Orchestration for automated performance testing
CN114661594A (zh) 一种用于自动化测试的方法、设备、介质及程序产品
CN111767208B (zh) 一种自动测试方法及装置
US11138645B2 (en) Virtualized services discovery and recommendation engine
CN107045475B (zh) 测试方法和装置
WO2015006137A1 (en) Cloud services load testing and analysis
CN114168471A (zh) 测试方法、装置、电子设备及存储介质
CN115576817A (zh) 一种自动化测试系统、方法、电子设备及存储介质
CN114328250A (zh) 软件系统自动自检方法、介质和装置
CN114610442A (zh) 一站式迁云系统、方法、设备及存储介质
CN114116509A (zh) 程序分析方法、装置、电子设备和存储介质
CN110995813B (zh) 一种检测页面性能的方法与设备
CN110837467B (zh) 软件测试方法、装置以及系统
CN112764796A (zh) 安装包生成系统
CN115422052A (zh) 一种车载导航app的测试系统及方法
CN115237399A (zh) 用于采集数据的方法、存储介质、处理器及工程车辆
CN114661593A (zh) 一种用于自动化测试的方法、设备、介质及程序产品
CN113704079B (zh) 基于Protobuf的接口测试方法和装置
CN113392002A (zh) 一种测试系统构建方法、装置、设备及存储介质
CN109756393B (zh) 信息处理方法、系统、介质和计算设备
CN114092169A (zh) 下单测试方法和系统以及执行下单测试方法的设备
CN112988585B (zh) 一种PaaS平台测试方法、装置、设备及介质
CN112084114B (zh) 用于测试接口的方法和装置
CN110022244B (zh) 用于发送信息的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination