CN113760763A - 软件测试方法、设备、服务器和系统 - Google Patents

软件测试方法、设备、服务器和系统 Download PDF

Info

Publication number
CN113760763A
CN113760763A CN202111055200.3A CN202111055200A CN113760763A CN 113760763 A CN113760763 A CN 113760763A CN 202111055200 A CN202111055200 A CN 202111055200A CN 113760763 A CN113760763 A CN 113760763A
Authority
CN
China
Prior art keywords
test
target module
server
terminal
request
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
CN202111055200.3A
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.)
Emotibot Technologies Ltd
Original Assignee
Emotibot Technologies 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 Emotibot Technologies Ltd filed Critical Emotibot Technologies Ltd
Priority to CN202111055200.3A priority Critical patent/CN113760763A/zh
Publication of CN113760763A publication Critical patent/CN113760763A/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/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

软件测试方法、设备、服务器和系统
技术领域
本申请涉及软件测试技术领域,具体而言,涉及一种软件测试方法、设备、服务器和系统。
背景技术
软件开发场景中,在软件投入运行之前,需要对软件进行测试。软件测试,是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求,或弄清预期结果与实际结果之间的差别。软件测试的目的通常包括:发现软件程序中的错误、对软件是否符合设计要求,以及是否符合合同中所要达到的技术要求,进行有关验证以及评估软件的质量。最终实现将高质量的软件系统交给用户的目的。
测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。也就是说,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件功能需求。
实际的测试场景中,当需要对终端的某个软件功能模块进行测试时,一般需要用户配置相应的测试参数,才可以运行相关的测试用例以完成测试,不同的测试用例往往需要配置不同的测试参数,随着测试用例的增多,用户需要输入越来越多的测试参数,测试服务器需要维护的测试参数也越来越多,不仅浪费了服务器侧的维护成本,而且也给用户操作带来了不便。
发明内容
本申请实施例的目的在于提供一种软件测试方法、设备、服务器和系统,客户终端可以直接通过自动化测试界面触发测试请求到服务器,解决了现有技术中用户需要配置较多测试参数的问题。
本申请实施例第一方面提供了一种软件测试方法,包括:当接收到操作指令时,显示测试界面窗口,所述测试界面窗口中包括终端的功能模块信息;接收对所述测试界面窗口中所述功能模块信息的选择指令,所述选择指令携带有被选中的目标模块的标识信息;根据所述标识信息生成对所述目标模块的测试请求;发送所述测试请求至服务器;接收所述服务器对所述目标模块的测试结果信息。
于一实施例中,所述根据所述标识信息生成对所述目标模块的测试请求包括:在接收到测试启动指令时,根据所述标识信息生成对所述目标模块的所述测试请求。
于一实施例中,所述测试结果信息中包括所述目标模块的测试报告的索引信息。
于一实施例中,还包括:在接收到对所述目标模块的测试结果查阅指令时,根据所述索引信息发送报告调取请求至所述服务器;接收所述服务器根据所述调取请求返回的所述目标模块的测试报告,并显示所述测试报告。
本申请实施例第二方面提供了一种软件测试方法,还包括:接收来自终端的测试请求,所述测试请求中携带有待测的目标模块的标识信息;根据所述标识信息,在数据库中查找出所述标识信息对应的测试用例,所述数据库中部署有所述终端的功能模块对应的测试用例;获取所述测试用例的公共参数,并根据所述公共参数和所述测试用例对所述目标模块进行测试,得到所述目标模块的测试结果信息;发送所述测试结果信息至所述终端。
于一实施例中,所述测试结果信息中包括所述目标模块的测试报告的索引信息。
于一实施例中,还包括:在接收到终端对所述目标模块的报告调取请求时,根据所述报告调取请求中携带的索引信息,发送所述目标模块的测试报告至所述终端。
于一实施例中,所述目标模块对应多个测试用例;所述根据所述公共参数和所述测试用例对所述目标模块进行测试,得到所述目标模块的测试结果信息,包括:将所述目标模块的所有测试用例添加到目标测试套件中;根据每个所述测试用例的所述公共参数,执行所述目标测试套件中所有的测试用例;收集每个所述测试用例的执行日志,根据所述执行日志生成所述目标模块的所述测试结果信息。
本申请实施例第三方面提供了一种软件测试方法,包括:当接收到操作指令时,终端显示测试界面窗口,所述测试界面窗口中包括所述终端的功能模块信息;所述终端接收对所述测试界面窗口中所述功能模块信息的选择指令,所述选择指令携带有被选中的目标模块的标识信息;所述终端根据所述标识信息生成对所述目标模块的测试请求;所述终端发送所述测试请求至服务器;所述服务器接收来自所述终端的测试请求,所述测试请求中携带有待测的目标模块的标识信息;所述服务器根据所述标识信息,在数据库中查找出所述标识信息对应的测试用例,所述数据库中部署有所述终端的功能模块对应的测试用例;所述服务器获取所述测试用例的公共参数,并根据所述公共参数和所述测试用例对所述目标模块进行测试,得到所述目标模块的测试结果信息;所述服务器发送所述测试结果信息至所述终端。所述终端接收所述服务器对所述目标模块的测试结果信息。
于一实施例中,所述测试结果信息中包括所述目标模块的测试报告的索引信息;所述方法还包括:终端在接收到对所述目标模块的测试结果查阅指令时,根据所述索引信息发送报告调取请求至所述服务器;服务器在接收到终端对所述目标模块的报告调取请求时,根据所述报告调取请求中携带的索引信息,发送所述目标模块的测试报告至所述终端。所述终端接收所述服务器根据所述调取请求返回的所述目标模块的测试报告,并显示所述测试报告。
本申请实施例第四方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行所述计算机程序,以实现本申请实施例第一方面及其任一实施例的方法。
本申请实施例第五方面提供了一种服务器,包括:存储器,用以存储计算机程序;处理器,用以执行所述计算机程序,以实现本申请实施例第二方面及其任一实施例所述的方法。
本申请实施例第六方面提供了一种软件测试系统,包括:本申请实施例第四方面所述的电子设备和本申请实施例第五方面所述的服务器,用以执行本申请实施例第三方面及其任一实施例所述的方法。
本申请实施例第七方面提供了一种非暂态电子设备可读存储介质,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行本申请实施例第一方面及其任一实施例的方法,或者当其藉由服务器运行时,使得所述服务器执行本申请实施例第二方面及其任一实施例的方法。
本申请提供的软件测试方法、设备、服务器和系统,通过在终端侧部署自动化测试的交互测试界面,用于与用户交互信息,当用户想要测试终端的功能模块时,用户可以通过预设的操作指令触发终端弹出测试界面窗口,然后直接通过测试界面窗口选择需要测试的目标模块,终端基于被选中的目标模块生成测试请求,并发送测试请求给服务器,由服务器完成测试过程,并返回测试结果信息,从而解决了现有技术中用户需要配置较多测试参数的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1A为本申请一实施例的电子设备的结构示意图;
图1B为本申请一实施例的电子设备的结构示意图;
图2A为本申请一实施例的软件测试系统的结构示意图;
图2B为本申请一实施例的软件测试系统的结构示意图;
图3为本申请一实施例的软件测试方法的流程示意图;
图4为本申请一实施例的软件测试方法的流程示意图;
图5为本申请一实施例的软件测试方法的流程示意图;
图6为本申请一实施例的软件测试装置的结构示意图;
图7为本申请一实施例的软件测试装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1A所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1A中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以实现直接通过终端的自动化测试界面触发测试请求到服务器,解决了现有技术中用户需要配置较多测试参数的问题。
于一实施例中,电子设备1可以是手机、平板电脑、笔记本电脑、台式计算机或者智能机器人。
如图1B所示,本实施例提供一种服务器2,包括:至少一个处理器21和存储器22,图1B中以一个处理器为例。处理器21和存储器22通过总线20连接。存储器22存储有可被处理器21执行的指令,指令被处理器21执行,以使服务器2可执行下述的实施例中方法的全部或部分流程,以实现直接通过终端的自动化测试界面触发测试请求到服务器,解决现有技术中用户需要配置较多测试参数的问题。
于一实施例中,服务器1可以是手机、平板电脑、笔记本电脑、台式计算机或者多个计算机组成的大型计算系统等设备。
如图2A所示,本实施例提供一种软件测试系统3,可以包括:终端31和服务器2,其中终端31可以由图1A所示的电子设备1实现,服务器2可以采用如图1B所示的服务器2,其中,终端31上设置有软件测试的前端交互界面(即测试界面),用户可以直接通过测试界面触发测试请求,并调用测试接口至服务器22,服务器22上部署有终端31的各个功能模块的测试用例和参数,用以完成对测试请求中指定目标模块的测试过程,并生成测试结果信息,将测试结果信息返回给终端31。
于一实施例中,如图2B所示,服务器2上部署有:运维脚本211、测试用例容器212、标准产品213和测试后端服务214,电子设备上部署有:测试前端服务311。其中:
测试用例容器212可以基于Docker(一种开源的应用容器引擎)实现,测试用例容器212中预先部署有标准产品213的各个功能模块的测试用例。
运维脚本211用于配置和维护软件测试系统3的相关数据。
标准产品213可以是已完成的软件产品,比如基于NLU(Natural LanguageUnderstanding,自然语言处理)系统的软件产品,诸如语音识别软件、机器问答软件等等,标准产品213可以安装在终端31上使用。
测试后端服务214,该服务启动后可用于执行容器Docker中的测试用例,用以完成相关软件功能的测试过程。
为节约成本,测试前端服务311和测试后端服务214可以部署在服务器2的同一个容器Docker中,另外测试前端服务311可部署在终端31上。此处以电子设备为语音机器人为例,用户可以通过机器人的交互界面录入需要测试的目标功能模块相关信息,测试前端服务311启动后,可以通过接口调用服务器2上的测试后端服务214,由服务器2完成对目标功能模块的测试过程。
测试用例容器212可以跟随运维脚本211与标准产品213一起部署起来,在同一个网络下运行。实际场景中,生成容器Docker时,可以从测试环境或运维脚本211中获得相关测试用例的测试参数,并传递到Docker内部,供相关服务使用。因此,无需用户录入测试参数,降低用户的使用难度,节约参数维护成本。容器Docker生成后可以陆续启动测试后端服务214和测试前端服务311。
于一实施例中,测试后端服务214框架可以基于计算机编程语言python+unittest(unittest是python内置的单元测试框架,具备编写用例、组织用例、执行用例、输出报告等自动化框架的条件)+ddt(python数据驱动模块)实现,在运维脚本211中配置测试需要的数据,实现测试系统的集成部署,部署过程可以如下:
1、Docker集成
(1)DockerFile中复制代码到Docker指定目录下;
(2)DockerFile中添加自动化前后端依赖。
2、Docker部署
通过运维部署脚本,在module.yaml文件中填写Docker信息及相关测试参数和环境参数,运维脚本211将容器Docker运行起来。
实现代码举例如下:
Figure BDA0003254340310000071
Figure BDA0003254340310000081
然后通过docker-compose命令启动所有服务。
上述代码中,参数1和参数2为全局变量,参数1可以是访问测试后端服务214的ip,参数2可以是访问测试后端服务214的端口,也就是把访问测试后端服务214的ip和端口作为Docker参数传入后台进行自动化测试。
在Docker启动后,可以采用supervisor(是用Python开发的一套通用的进程管理程序)通过脚本或命令启动多个服务,在启动测试前端服务311nginx时,把Docker参数3和参数4传入nginx,作为nginx转发地址的ip和端口,并替换nginx配置文件,实现代码举例如下:
envsubst'
$$参数3
$$参数4
'</usr/local/nginx/conf/nginx.conf.template>/usr/local/nginx/conf/nginx.conf
于一实施例中,测试前端服务311框架可以基于vue(是一套用于构建用户界面的渐进式JavaScript框架)+element(基于Vue 2.0的组件库)+axios(是一个基于promise的HTTP库)实现,实现过程可以如下:
1、测试前端服务311使用vue+element框架搭建前端页面。
2、使用axios调用测试后端服务214接口。
实现代码举例如下:
Figure BDA0003254340310000091
3、前端代码完成后,生成可访问的静态资源。
4、然后配置nginx(engine x,是一个高性能的HTTP和反向代理web服务器2),以使当接收到预设的url(统一资源定位器)时可以访问到静态资源,进入可交互的测试界面,实现代码举例如下:
Figure BDA0003254340310000092
于一实施例中,测试后端服务214有如下两种调用方式:
(1)标准产品213里面添加入口,可以跳转至测试前端服务311的测试交互界面,用户可以在测试交互界面上选择需要测试的功能模块,点击开启测试按钮后,调用测试后端服务214,执行相关测试过程。
(2)可以运维脚本211运行完后,通过Shell脚本调用测试后端服务214,执行相关测试过程。实现代码举例如下:
#!/bin/bash
Curl‘自动化后端接口’
测试后端服务214完成相应的测试过程,生成从测试报告,比如可以是Html报告,测试前端服务311可以通过测试后端服务214提供的查询接口,获取到测试报告列表,并展示报告列表,点击列表中任一单元格的内容,可以跳转到对应的报告界面查看结果。
请参看图3,其为本申请一实施例的软件测试方法,该方法可由图1A所示的电子设备1作为终端31来执行,并可以应用于如图2A至图2B所示的软件测试场景中,以实现直接通过电子设备1的自动化测试界面触发测试请求到服务器2,完成自动化测试,该方法包括如下步骤:
步骤301:当接收到操作指令时,显示测试界面窗口,测试界面窗口中包括终端31的功能模块信息;
在本步骤中,操作指令可以是预先设置的特定指令,该操作指令会触发进入可交互的测试界面,该指令可以是点击某个图标或按钮,也可以是以特定动作滑动屏幕。以智能语音机器人作为终端31、语音识别软件作为标准产品213为例,机器人上安装有语音识别软件,并开启了测试前端服务311。用户可以通过机器人的显示器输入操作指令,比如点击测试按钮,然后机器人自动跳转到测试界面窗口,该测试界面窗口内会显示机器人的功能模块信息,比如显示功能模块的标号信息,机器人可安装多个标准产品213,每个标准产品213可具有多个可以测试的软件功能模块,可以将多个功能模块的标号都显示在测试界面窗口内,也可以预先配置显示部分功能模块的标号。
步骤302:接收对测试界面窗口中功能模块信息的选择指令,选择指令携带有被选中的目标模块的标识信息;
在本步骤中,用户可以在测试界面窗口上选择自己需要测试的功能模块,比如可以通过点击功能模块A的标号,选中功能模块A,此时机器人接收到的选择指令中会包含功能模块A的标识信息,该标识信息可以是功能模块的名称或者唯一标号。
步骤303:根据标识信息生成对目标模块的测试请求;
在本步骤中,基于用户在测试界面中选中的目标模块的标识信息生成对应的测试请求,比如基于目标模块的名称生成测试请求,测试请求中会携带有目标模块的名称,以供服务器2端使用。
于一实施例中,步骤303可以包括:在接收到测试启动指令时,根据标识信息生成对目标模块的测试请求。也就是说,在用户选中了目标模块A后,并且输入了测试启动指令后,再生成测试请求,此处用户可以通过点击测试界面上的开启按钮或者图标来输入测试启动指令。
步骤304:发送测试请求至服务器2;
在本步骤中,终端31可以通过测试前端服务311,通过axios来调用测试后端后端服务的接口API,服务器2中部署有终端31侧标准产品213的相关测试用例,测试后端服务214被调用后,可以执行相关测试用例,完成对目标模块的测试过程。
步骤305:接收服务器2对目标模块的测试结果信息。
在本步骤中,服务器2完成对目标模块的测试过程后,可以将测试结果返回给终端31,测试结果信息中可以直接包含目标模块的测试报告,或者包含目标模块的测试报告的索引信息。
于一实施例中,测试结果信息中可以包括目标模块的测试报告的索引信息。索引信息可以包括目标模块的标识信息及其对应的测试报告的地址和接口,当目标模块有多个时,测试结果信息中可以是每个目标模块的测试报告的地址和接口组成的表格,并可以将表格展示在终端31的测试界面上,用户可以从表格中选取想要查看的测试报告的索引信息。
进一步地,该方法还可以包括如下步骤:
步骤306:在接收到对目标模块的测试结果查阅指令时,根据索引信息发送报告调取请求至服务器2;
在本步骤中,如果用户从测试结果信息的表格中点击目标模块A,即触发对目标模块A的测试报告的查阅指令,终端31接收到该查阅指令后,通过索引信息中目标模块A对应的测试报告地址和接口,发送报告调取请求给服务器2。
步骤307:接收服务器2根据调取请求返回的目标模块的测试报告,并显示测试报告。
在本步骤中,服务器2会根据报告调取请求,向终端31返回目标模块的测试报告,测试报告可以是html格式,终端31可以在交互界面显示测试报告,以供用户查阅。
上述软件测试方法,通过在终端31侧部署自动化测试的交互测试界面,用于与用户交互信息,当用户想要测试终端31的功能模块时,用户可以通过预设的操作指令触发终端31弹出测试界面窗口,然后直接通过测试界面窗口选择需要测试的目标模块,终端31基于被选中的目标模块生成测试请求,并发送测试请求给服务器2,服务器2中预先部署了终端31相关的测试用例,由服务器2完成测试过程,并返回测试结果信息,从而解决了现有技术中用户需要配置较多测试参数的问题,节约了参数维护成本。
请参看图4,其为本申请一实施例的软件测试方法,该方法可由图1B所示的服务器2来执行,并可以应用于如图2A至图2B所示的软件测试场景中,以实现直接通过电子设备1的自动化测试界面触发测试请求到服务器2,由服务器2完成自动化测试,该方法包括如下步骤:
步骤401:接收来自终端31的测试请求,测试请求中携带有待测的目标模块的标识信息;
在本步骤中,于终端31中部署并开启测试前端服务311,用户可以通过终端31输入触发测试请求,测试请求中包括用户想要测试的目标模块的标识信息,服务器2实时接收来自终端31的测试请求。于服务器2端部署并开启测试后端服务214,可以对测试请求解析,并从中获得目标模块的标识信息。其中,终端31、测试请求以及目标模块的标识信息的相关描述可以参阅如图3所示的实施例的具体介绍。
步骤402:根据标识信息,在数据库中查找出标识信息对应的测试用例,数据库中部署有终端31的功能模块对应的测试用例;
在本步骤中,以图2A和图2B所示的场景为例,数据库中包括标准产品213的相关测试用例的部署信息,这些测试用例被预先部署在服务器2中,每个测试用例都与对应功能模块的标识信息相关联,比如数据库中存储有测试用例与功能模块的对应表格,即可以使用Excel表格维护测试用例与对应功能模块的关系。当服务器2获取到测试请求中的目标模块的标识信息时,可以基于标识信息,在表格中查找该标识信息对应的测试用例,并调用该测试用例。
于一实施例中,可以基于Flask框架(是由python实现的一种web微框架)编写测试后端服务214接口,并启动测试后端服务214,当测试后端服务214接口被测试前端服务311调用时,通过测试请求获得到期望被测试的目标模块名称,然后通过Excel名称和sheet页名称查找到目标模块的测试用例,实现代码举例如下:
Figure BDA0003254340310000131
步骤403:获取测试用例的公共参数,并根据公共参数和测试用例对目标模块进行测试,得到目标模块的测试结果信息;
在本步骤中,公共参数可以是执行测试用例的必要测试参数,预先将这些公共参数配置好,可以避免用户在测试前输入测试参数。可以在生成容器Docker时,从测试环境或运维脚本211中获得相关测试用例的测试参数,并传递到Docker内部,供相关服务使用。因此,无需用户录入测试参数,降低用户的使用难度,节约参数维护成本。获取到的公共参数可以使用yaml(是专门用来写配置文件的语言)文件来管理,开发人员可以手动修改yaml文件的内容,也可以接收Docker传进来的变量作为公共参数,执行测试用例前需要从yaml文件中获取对应的公共参数,然后根据公共参数和测试用例对目标模块进行测试,得到目标模块的测试结果信息。
于一实施例中,针对目标模块的测试任务中可能对应多个测试用例;因此步骤403可以包括:将目标模块的所有测试用例添加到目标测试套件中;根据每个测试用例的公共参数,执行目标测试套件中所有的测试用例;收集每个测试用例的执行日志,根据执行日志生成目标模块的测试结果信息。
在实际场景中,在服务器2执行测试用例时,首先读取对应的启动变量,并重置全局变量,然后读取测试用例的相关配置,进行测试用例的组装,调用相关启动方法。在调用启动方法时,可以遍历目标模块的所有文件,找出以Test.py结尾的文件(即测试文件),然后读取上述文件,组装目标模块相关的测试用例,然后将测试用例添加至目标模块的测试套件中,执行测试套件中每个测试用例的测试脚本,并收集测试执行的日志文件,写入测试报告。执行完毕后,集成输出每个测试用例的测试报告。并可以生成测试结果信息,测试结果信息中可以包括目标模块的测试报告的索引信息,测试结果信息的详细内容可以参见如图3所示的实施例的具体介绍。
于一实施例中,可以采用unittest+ddt数据驱动方式来执行对应目标模块的测试用例,实现代码举例如下:
Figure BDA0003254340310000141
Figure BDA0003254340310000151
其中,可以采用Request来访问标准产品213的接口,实现自动化接口测试,过程如下:
(1)接口封装实现代码举例如下:
Figure BDA0003254340310000152
(2)接口访问的实现代码举例如下:
Figure BDA0003254340310000153
Figure BDA0003254340310000161
执行完测试用例后,可以通过BeautifulReport(适用于unittest自动化测试的可视化报告)生成可视化的测试报告。
步骤404:发送测试结果信息至终端31。
在本步骤中,为了便于终端31侧用户查看测试报告,可以发送测试结果信息至终端31侧。
步骤405:在接收到终端31对目标模块的报告调取请求时,根据报告调取请求中携带的索引信息,发送目标模块的测试报告至终端31。
在本步骤中,测试结果信息中可以包括目标模块的测试报告的索引信息。索引信息可以包括目标模块的标识信息及其对应的测试报告的地址和接口,当目标模块有多个时,测试结果信息中可以是每个目标模块的测试报告的地址和接口组成的表格,用户可以从表格中选取想要查看的测试报告的索引信息,并触发报告调取请求,服务器2实时接收来自终端31的报告调取请求,从中获取用户想要查看的索引信息,然后基于该索引信息,将对应的测试报告至终端31,如此完成对目标模块的测试过程,对于终端31测得用户来说,整个过程无需输入相关测试参数,实现了一键完成自动化测试。
请参看图5,其为本申请一实施例的软件测试方法,该方法可由图2A至图2B所示的软件测试系统3来执行,电子设备1作为终端31,以实现直接通过电子设备1的自动化测试界面触发测试请求到服务器2,完成自动化测试,该方法包括如下步骤:
步骤501:当接收到操作指令时,终端31显示测试界面窗口,测试界面窗口中包括终端31的功能模块信息;
步骤502:终端31接收对测试界面窗口中功能模块信息的选择指令,选择指令携带有被选中的目标模块的标识信息;
步骤503:终端31根据标识信息生成对目标模块的测试请求;终端31发送测试请求至服务器2;
步骤504:服务器2接收来自终端31的测试请求,测试请求中携带有待测的目标模块的标识信息;
步骤505:服务器2根据标识信息,在数据库中查找出标识信息对应的测试用例,数据库中部署有终端31的功能模块对应的测试用例;
步骤506:服务器2获取测试用例的公共参数,并根据公共参数和测试用例对目标模块进行测试,得到目标模块的测试结果信息;
步骤507:服务器2发送测试结果信息至终端31。终端31接收服务器2对目标模块的测试结果信息。
于一实施例中,测试结果信息中包括目标模块的测试报告的索引信息;方法还包括:
步骤508:终端31在接收到对目标模块的测试结果查阅指令时,根据索引信息发送报告调取请求至服务器2;
步骤509:服务器2在接收到终端31对目标模块的报告调取请求时,根据报告调取请求中携带的索引信息,发送目标模块的测试报告至终端31。
步骤510:终端31接收服务器2根据调取请求返回的目标模块的测试报告,并显示测试报告。
上述软件测试方法的详细描述,请参见上述图3对应的实施例和图4对应的实施例中相关方法步骤的描述。
请参看图6,其为本申请一实施例的软件测试装置600,该装置可应用于图1A所示的电子设备1,并可以应用于如图2A至图2B所示的软件测试场景中,以实现直接通过电子设备1的自动化测试界面触发测试请求到服务器2,完成自动化测试,该装置包括:显示模块601、第一接收模块602、生成模块603、第一发送模块604和第二接收模块605,各个模块的原理关系如下:
显示模块601,用于当接收到操作指令时,显示测试界面窗口,测试界面窗口中包括终端31的功能模块信息;
第一接收模块602,用于接收对测试界面窗口中功能模块信息的选择指令,选择指令携带有被选中的目标模块的标识信息;
生成模块603,用于根据标识信息生成对目标模块的测试请求;
第一发送模块604,用于发送测试请求至服务器2;
第二接收模块605,用于接收服务器2对目标模块的测试结果信息。
于一实施例中,还包括:
第二发送模块,用于在接收到对目标模块的测试结果查阅指令时,根据索引信息发送报告调取请求至服务器2;
第三接收模块,用于接收服务器2根据调取请求返回的目标模块的测试报告,并显示测试报告。
上述软件测试装置600的详细描述,请参见上述实施例中相关方法步骤的描述。
请参看图7,其为本申请一实施例的软件测试装置700,该装置可应用于图1B所示的服务器2,并可以应用于如图2A至图2B所示的软件测试场景中,以实现直接通过电子设备1的自动化测试界面触发测试请求到服务器2,完成自动化测试,该装置包括:第四接收模块701、查找模块702、获取模块703、第三发送模块704,各个模块的原理关系如下:
第四接收模块701,用于接收来自终端31的测试请求,测试请求中携带有待测的目标模块的标识信息;
查找模块702,用于根据标识信息,在数据库中查找出标识信息对应的测试用例,数据库中部署有终端31的功能模块对应的测试用例;
获取模块703,用于获取测试用例的公共参数,并根据公共参数和测试用例对目标模块进行测试,得到目标模块的测试结果信息;
第三发送模块704,用于发送测试结果信息至终端31。
于一实施例中,还包括:
第四发送模块,用于在接收到终端31对目标模块的报告调取请求时,根据报告调取请求中携带的索引信息,发送目标模块的测试报告至终端31。
上述软件测试装置700的详细描述,请参见上述实施例中相关方法步骤的描述。
本发明实施例还提供了一种非暂态电子设备可读存储介质,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (12)

1.一种软件测试方法,其特征在于,包括:
当接收到操作指令时,显示测试界面窗口,所述测试界面窗口中包括终端的功能模块信息;
接收对所述测试界面窗口中所述功能模块信息的选择指令,所述选择指令携带有被选中的目标模块的标识信息;
根据所述标识信息生成对所述目标模块的测试请求;
发送所述测试请求至服务器;
接收所述服务器对所述目标模块的测试结果信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述标识信息生成对所述目标模块的测试请求包括:
在接收到测试启动指令时,根据所述标识信息生成对所述目标模块的所述测试请求。
3.根据权利要求1所述的方法,其特征在于,所述测试结果信息中包括所述目标模块的测试报告的索引信息。
4.根据权利要求3所述的方法,其特征在于,还包括:
在接收到对所述目标模块的测试结果查阅指令时,根据所述索引信息发送报告调取请求至所述服务器;
接收所述服务器根据所述调取请求返回的所述目标模块的测试报告,并显示所述测试报告。
5.一种软件测试方法,其特征在于,还包括:
接收来自终端的测试请求,所述测试请求中携带有待测的目标模块的标识信息;
根据所述标识信息,在数据库中查找出所述标识信息对应的测试用例,所述数据库中部署有所述终端的功能模块对应的测试用例;
获取所述测试用例的公共参数,并根据所述公共参数和所述测试用例对所述目标模块进行测试,得到所述目标模块的测试结果信息;
发送所述测试结果信息至所述终端。
6.根据权利要求5所述的方法,其特征在于,所述测试结果信息中包括所述目标模块的测试报告的索引信息。
7.根据权利要求6所述的方法,其特征在于,还包括:
在接收到终端对所述目标模块的报告调取请求时,根据所述报告调取请求中携带的索引信息,发送所述目标模块的测试报告至所述终端。
8.根据权利要求5所述的方法,其特征在于,所述目标模块对应多个测试用例;所述根据所述公共参数和所述测试用例对所述目标模块进行测试,得到所述目标模块的测试结果信息,包括:
将所述目标模块的所有测试用例添加到目标测试套件中;
根据每个所述测试用例的所述公共参数,执行所述目标测试套件中所有的测试用例;
收集每个所述测试用例的执行日志,根据所述执行日志生成所述目标模块的所述测试结果信息。
9.一种软件测试方法,其特征在于,包括:
终端当接收到操作指令时,显示测试界面窗口,所述测试界面窗口中包括所述终端的功能模块信息;
所述终端接收对所述测试界面窗口中所述功能模块信息的选择指令,所述选择指令携带有被选中的目标模块的标识信息;
所述终端根据所述标识信息生成对所述目标模块的测试请求;
所述终端发送所述测试请求至服务器;
所述服务器接收来自所述终端的测试请求,所述测试请求中携带有待测的目标模块的标识信息;
所述服务器根据所述标识信息,在数据库中查找出所述标识信息对应的测试用例,所述数据库中部署有所述终端的功能模块对应的测试用例;
所述服务器获取所述测试用例的公共参数,并根据所述公共参数和所述测试用例对所述目标模块进行测试,得到所述目标模块的测试结果信息;
所述服务器发送所述测试结果信息至所述终端;
所述终端接收所述服务器对所述目标模块的测试结果信息。
10.一种电子设备,其特征在于,包括:
存储器,用以存储计算机程序;
处理器,用以执行所述计算机程序,以实现如权利要求1至4中任一项所述的方法。
11.一种服务器,其特征在于,包括:
存储器,用以存储计算机程序;
处理器,用以执行所述计算机程序,以实现如权利要求5至8中任一项所述的方法。
12.一种软件测试系统,其特征在于,包括:如权利要求10所述的电子设备和如权利要求11所述的服务器,用以执行如权利要求9所述的方法。
CN202111055200.3A 2021-09-09 2021-09-09 软件测试方法、设备、服务器和系统 Pending CN113760763A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111055200.3A CN113760763A (zh) 2021-09-09 2021-09-09 软件测试方法、设备、服务器和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111055200.3A CN113760763A (zh) 2021-09-09 2021-09-09 软件测试方法、设备、服务器和系统

Publications (1)

Publication Number Publication Date
CN113760763A true CN113760763A (zh) 2021-12-07

Family

ID=78794256

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111055200.3A Pending CN113760763A (zh) 2021-09-09 2021-09-09 软件测试方法、设备、服务器和系统

Country Status (1)

Country Link
CN (1) CN113760763A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114328210A (zh) * 2021-12-24 2022-04-12 中国联合网络通信集团有限公司 一种测试方法、装置及计算机可读存储介质
CN114880240A (zh) * 2022-05-31 2022-08-09 成都秦川物联网科技股份有限公司 一种物联网设备自动化测试系统、方法、存储介质及设备
CN116298799A (zh) * 2023-03-10 2023-06-23 深圳市晶存科技有限公司 芯片测试多界面联动显示方法及系统
CN117112450A (zh) * 2023-10-24 2023-11-24 卡斯柯信号(北京)有限公司 测试临时限速服务器的方法及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114328210A (zh) * 2021-12-24 2022-04-12 中国联合网络通信集团有限公司 一种测试方法、装置及计算机可读存储介质
CN114880240A (zh) * 2022-05-31 2022-08-09 成都秦川物联网科技股份有限公司 一种物联网设备自动化测试系统、方法、存储介质及设备
CN116298799A (zh) * 2023-03-10 2023-06-23 深圳市晶存科技有限公司 芯片测试多界面联动显示方法及系统
CN116298799B (zh) * 2023-03-10 2024-03-19 深圳市晶存科技有限公司 芯片测试多界面联动显示方法及系统
CN117112450A (zh) * 2023-10-24 2023-11-24 卡斯柯信号(北京)有限公司 测试临时限速服务器的方法及装置
CN117112450B (zh) * 2023-10-24 2024-03-26 卡斯柯信号(北京)有限公司 测试临时限速服务器的方法及装置

Similar Documents

Publication Publication Date Title
US10325009B2 (en) Method and apparatus for using custom component parsing engine to parse tag of custom component
CN113760763A (zh) 软件测试方法、设备、服务器和系统
US9003423B1 (en) Dynamic browser compatibility checker
CN110825618B (zh) 一种生成测试用例的方法及相关装置
US10649836B2 (en) Detecting an error message and automatically presenting links to relevant solution pages
CN110955428A (zh) 一种页面显示方法、装置、电子设备及介质
WO2013138919A1 (en) Systems and methods for building a universal intelligent assistant with learning capabilities
EP3848824A1 (en) Landing page processing method, apparatus, device and medium
CN111385633B (zh) 一种基于语音的资源搜索方法、智能终端及存储介质
CN110659349A (zh) 日志查询方法、装置、设备及计算机可读存储介质
CN113051514A (zh) 元素的定位方法、装置、电子设备及存储介质
US11422917B2 (en) Deriving software application dependency trees for white-box testing
CN113656304B (zh) 一种前端应用程序的测试方法、设备和存储介质
CN111679976A (zh) 一种页面对象的查找方法及装置
JP4795446B2 (ja) 動作検証装置および動作検証プログラム
CN114237651A (zh) 云原生应用的安装方法、装置、电子设备和介质
CN111679828B (zh) 一种数据处理的方法及装置、电子设备、存储介质
CN111666201A (zh) 回归测试方法、装置、介质及电子设备
CN113032078A (zh) 页面展示方法、装置、电子设备和计算机可读存储介质
CN109446451B (zh) 网页展示的方法、装置、介质和计算设备
CN110825622A (zh) 软件测试方法、装置、设备和计算机可读介质
CN111026669A (zh) 测试日志管理方法、测试日志管理装置及存储介质
CN111367703A (zh) 故障排查方法及装置
CN110659191A (zh) 埋点数据分析方法、装置、计算机设备和存储介质
US11960560B1 (en) Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof

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