CN106126426B - 计算机软件的测试方法和装置 - Google Patents

计算机软件的测试方法和装置 Download PDF

Info

Publication number
CN106126426B
CN106126426B CN201610524060.2A CN201610524060A CN106126426B CN 106126426 B CN106126426 B CN 106126426B CN 201610524060 A CN201610524060 A CN 201610524060A CN 106126426 B CN106126426 B CN 106126426B
Authority
CN
China
Prior art keywords
client
logic
behavior
server
test
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.)
Active
Application number
CN201610524060.2A
Other languages
English (en)
Other versions
CN106126426A (zh
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201610524060.2A priority Critical patent/CN106126426B/zh
Publication of CN106126426A publication Critical patent/CN106126426A/zh
Application granted granted Critical
Publication of CN106126426B publication Critical patent/CN106126426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

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

计算机软件的测试方法和装置
技术领域
本发明涉及测试领域,具体而言,涉及一种计算机软件的测试方法和装置。
背景技术
技术人员在对基于客户端或者服务器的软件进行测试时,往往会涉及到多个客户端的协同测试任务,该测试任务主要需要多个客户端协同才能完成某项功能的正确性、异常逻辑及性能等的验证。特殊地,在对多人即时通信软件或者大型的多人在线网络游戏的测试过程中,需要模拟数千、数万甚至更多客户端同时操作的场景。但是,在一般情况下,由于测试机资源的限制,被测试的客户端在测试机上的启动数目无法满足上述测试条件。
为突破上述测试条件的限制,测试人员会编写免客户端测试脚本来模拟多客户端的行为处理逻辑,并在测试过程中不断修改免客户端测试脚本的行为处理逻辑来满足特定的测试需求。通常修改免客户端测试脚本后,需要重启脚本以使改动生效,然而考虑到服务器负载的限制,重启一批模拟上万客户端的测试脚本需要经历几分钟、几十分钟甚至更久,为了减少改动免客户端行为处理逻辑而带来的重启耗时问题,一般会对免客户端测试脚本做逻辑上的分组,每次仅需重启有改动的分组,但仍旧无法避免重启后需要恢复重启前测试场景的问题,在复杂的场景下(例如,有负载均衡逻辑的系统中),恢复测试场景将消耗可观的测试时间,有时甚至无法恢复。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种计算机软件的测试方法和装置,以至少解决现有技术中测试脚本在修改行为处理逻辑之后需要重启的技术问题。
根据本发明实施例的一个方面,提供了一种计算机软件的测试方法,包括:模拟多个客户端分别与服务器建立网络连接,模拟的所述客户端用于根据行为处理逻辑结合所述服务器进行软件测试,所述行为处理逻辑为所述客户端与所述服务器的测试逻辑;维护所述客户端与所述服务器的网络连接,以使所述客户端与所述服务器的网络连接不因所述行为处理逻辑的改变而改变;维护每个所述客户端的状态,以使每个所述客户端的状态在所述行为处理逻辑改变时得以延续;根据测试人员的指令为所述客户端配置行为处理逻辑;根据配置的所述行为处理逻辑使用所述客户端与所述服务器进行软件测试。
进一步地,所述根据测试人员的指令为所述客户端配置行为处理逻辑具体包括:根据测试人员的指令从所述多个客户端中选定至少一个客户端;根据测试人员的指令为选定的所述至少一个客户端配置所述行为处理逻辑,并保存配置的所述行为处理逻辑与选定的所述至少一个客户端之间的映射关系。
进一步地,所述配置行为处理逻辑包括以下至少之一:新增行为处理逻辑、删除行为处理逻辑、修改行为处理逻辑、为选定的所述至少一个客户端新增行为处理逻辑、为选定的所述至少一个客户端删除行为处理逻辑、为选定的所述至少一个客户端修改行为处理逻辑。
进一步地,所述行为处理逻辑的内容包括以下至少之一:协议层的数据包封装与解析、业务逻辑层的通知、广播、定时任务、所模拟客户端的目标操作。
进一步地,所述客户端的状态包括以下至少之一:网络连接状态、网络重连历史、登录状态。
进一步地,所述维护所述客户端与所述服务器的网络连接包括以下至少之一:创建所述客户端与所述服务器的连接、断开所述客户端与所述服务器的连接、接收所述服务器发送的数据包、向所述服务器发送数据包、缓存所述客户端与所述服务器的数据包。
进一步地,以图形化的方式显示以下至少之一:所述行为处理逻辑的配置,所述行为处理逻辑与所述客户端的映射关系,所述客户端与所述服务器的网络连接情况、所述客户端的状态的统计情况。
根据本发明实施例的另一方面,还提供了一种计算机软件的测试装置,包括:模拟单元,用于模拟多个客户端分别与服务器建立网络连接,模拟的所述客户端用于根据行为处理逻辑结合所述服务器进行软件测试;行为逻辑行为处理逻辑单元,用于控制行为处理逻辑,所述行为处理逻辑为所述客户端与所述服务器的测试逻辑;连接代理单元,用于维护所述客户端与所述服务器的网络连接,以使所述客户端与所述服务器的网络连接不因所述行为处理逻辑的改变而改变;状态单元,对应于每个所述客户端,用于维护每个所述客户端的状态,以使每个所述客户端的状态在所述行为处理逻辑改变时得以延续;逻辑映射单元,用于根据测试人员的指令为所述客户端配置行为处理逻辑;测试单元,用于根据配置的所述行为处理逻辑使用所述客户端与所述服务器进行软件测试。
进一步地,所述逻辑映射单元具体用于:根据测试人员的指令从所述多个客户端中选定至少一个客户端;根据测试人员的指令为选定的所述至少一个客户端配置所述行为处理逻辑,并保存配置的所述行为处理逻辑与选定的所述至少一个客户端之间的映射关系。
进一步地,所述配置行为处理逻辑包括以下至少之一:新增行为处理逻辑、删除行为处理逻辑、修改行为处理逻辑、为选定的所述至少一个客户端新增行为处理逻辑、为选定的所述至少一个客户端删除行为处理逻辑、为选定的所述至少一个客户端修改行为处理逻辑。
进一步地,所述行为处理逻辑的内容包括以下至少之一:协议层的数据包封装与解析、业务逻辑层的通知、广播、定时任务、所模拟客户端的目标操作。
进一步地,所述客户端的状态包括以下至少之一:网络连接状态、网络重连历史、登录状态。
进一步地,所述维护所述客户端与所述服务器的网络连接包括以下至少之一:创建所述客户端与所述服务器的连接、断开所述客户端与所述服务器的连接、接收所述服务器发送的数据包、向所述服务器发送数据包、缓存所述客户端与所述服务器的数据包。
进一步地,还包括图形化辅助单元,用于以图形化的方式显示以下至少之一:所述行为处理逻辑的配置,所述行为处理逻辑与所述客户端的映射关系,所述客户端与所述服务器的网络连接情况、所述客户端的状态的统计情况。
在本发明实施例中,采用模拟多个客户端分别与服务器建立网络连接,模拟的所述客户端用于根据行为处理逻辑结合所述服务器进行软件测试,所述行为处理逻辑为所述客户端与所述服务器的测试逻辑;维护所述客户端与所述服务器的网络连接,以使所述客户端与所述服务器的网络连接不因所述行为处理逻辑的改变而改变;维护每个所述客户端的状态,以使每个所述客户端的状态在所述行为处理逻辑改变时得以延续;根据测试人员的指令为所述客户端配置行为处理逻辑;根据配置的所述行为处理逻辑使用所述客户端与所述服务器进行软件测试的方式,通过维护模拟的多个客户端与服务器的网络连接,并同时维护模拟的每个客户端的状态,使得行为处理逻辑发生改变时,模拟的客户端与服务器的网络连接不会随之发生改变,同时可以使得模拟的每个客户端的状态保持不变,相对于现有技术中,在修改测试脚本的行为处理逻辑之后,还需要重启测试脚本的方案,本发明通过维护网络连接和模拟的每个客户端的状态,达到了测试脚本在修改行为处理逻辑之后不需要重启脚本的目的,从而实现了快速对模拟的多个客户端进行测试的技术效果,进而解决了现有技术中测试脚本在修改行为处理逻辑之后需要重启的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种计算机软件的测试方法的流程图;
图2是根据本发明实施例的另一种计算机软件的测试方法的流程图;
图3是根据本申请实施例的一种计算机软件的测试装置的示意图;
图4是根据本发明实施例的一种计算机软件的测试装置的示意图;以及
图5是根据本发明实施例的另一种计算机软件的测试装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种计算机软件的测试方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种计算机软件的测试方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,模拟多个客户端分别与服务器建立网络连接,模拟的客户端用于根据行为处理逻辑结合服务器进行软件测试,行为处理逻辑为客户端与服务器的测试逻辑。
在本发明实施例中,测试脚本为模拟多个客户端的行为处理逻辑的脚本,因此,该测试脚本又可以称为免客户端测试脚本。如果想要建立模拟的客户端与服务器的网络连接,则可以通过该测试脚本模拟多个客户端分别与服务器建立网络连接。由于在现有的脚本测试方案中,脚本测试大多是基于服务器的测试,因此,需要首先建立模拟的客户端与服务器之间的网络连接。在本发明实施例中,可以在测试脚本中编写相应地代码,以使该测试脚本在运行时即建立模拟的多个客户端与服务器的网络连接。
步骤S104,维护客户端与服务器的网络连接,以使客户端与服务器的网络连接不因行为处理逻辑的改变而改变。
在通过测试脚本对模拟的客户端的行为处理逻辑进行测试的过程中,往往需要客户端与服务器保持网络连接或者断开网络连接。但是,通过背景技术中的描述可知,当测试脚本的行为处理逻辑发生改变时,需要重新建立客户端和服务器之间的网络连接,这就耗费了大量的时间。因此,在本发明实施例中,可以维护模拟的客户端与服务器之间的网络连接的连接状态,以使模拟的客户端与服务器的网络连接不会因为行为处理逻辑的改变而改变。
在本发明实施例中,维护模拟的客户端与服务器的网络连接能够确保在整个测试过程中无需断开测试脚本与服务器的之间网络连接,这使得测试人员能够在服务器无感知的情况下更改测试脚本的行为处理逻辑,而无需为此重启测试脚本,并恢复测试场景。同时,统一的维护网络连接能够使用IOCP(I/O完成端口)、select、poll、epoll等技术高效地维护大量的网络连接,降低免客户端测试脚本的资源消耗。
步骤S106,维护每个客户端的状态,以使每个客户端的状态在行为处理逻辑改变时得以延续。
在本发明实施例中,还可以维护模拟的多个客户端中每个客户端的状态,以使每个客户端的状态在行为处理逻辑改变时能够保持不变。
步骤S108,根据测试人员的指令为客户端配置行为处理逻辑。
在本发明实施例中,可以通过为测试脚本配置行为处理逻辑来为模拟的客户端配置行为处理逻辑。
如果模拟的客户端的数量为多个,那么可以根据测试人员的指令在模拟的多个客户端中选定至少一个客户端,然后,根据测试人员的指令为选定的至少一个客户端配置行为处理逻辑,并保存配置的行为处理逻辑与选定的至少一个客户端之间的映射关系。
步骤S110,根据配置的行为处理逻辑使用客户端与服务器进行软件测试。
在本发明实施例中,可以在模拟的客户端与服务器之间的网络连接不发生变化的情况下,或者在模拟的客户端中每个客户端的状态不发生变化的情况下,通过为每个模拟的客户端配置的行为处理逻辑对模拟的客户端中的至少一个客户端进行软件测试操作。
在本发明实施例中,通过维护模拟的多个客户端与服务器的网络连接,并同时维护模拟的每个客户端的状态,使得行为处理逻辑发生改变时,模拟的客户端与服务器的网络连接不会随之发生改变,同时可以使得模拟的每个客户端的状态保持不变,相对于现有技术中,在修改测试脚本的行为处理逻辑之后,还需要重启测试脚本的方案,本发明通过维护网络连接和模拟的每个客户端的状态,达到了测试脚本在修改行为处理逻辑之后不需要重启脚本的目的,从而实现了快速对模拟的多个客户端进行测试的技术效果,进而解决了现有技术中测试脚本在修改行为处理逻辑之后需要重启的技术问题。
图2是根据本发明实施例的另一种计算机软件的测试方法的流程图。如图2所示,该方法包括如下步骤:
步骤S201:通过筛选、框选等方式在模拟的多个客户端中选定至少一个客户端;其中,测试者可以向系统发送筛选、框定的指令,系统在获取到该指令之后,就可以通过筛选,框选等方式在模拟的多个客户端中选定至少一个客户端。
筛选和框定的方式可以有很多种,在本发明实施例中,在进行筛选时,可以通过正则表达式匹配关键字、关键列排序、在状态单元中进行状态筛选等方式进行筛选,例如,用户可以输入一个关键字,则系统可以根据用户输入的关键字通过正则匹配的方式查找至少一个客户端;用户还可以输入一个或多个用于体现上述预定状态的关键字,例如,输入“已登录”,则系统会根据该预定状态在状态单元中查找正处于该状态的客户端作为选定的至少一个客户端。
步骤S202:为选定的至少一个客户端配置行为处理逻辑,其中,配置行为逻辑处理包括以下至少之一:新增行为处理逻辑、删除行为处理逻辑、修改行为处理逻辑、为选定的至少一个客户端新增行为处理逻辑、为选定的的至少一个客户端删除行为处理逻辑、为选定的至少一个客户端修改行为处理逻辑等。
步骤S203:执行手动触发配置的行为处理逻辑,其中,在本发明实施例中,执行触发行为处理逻辑的目标为步骤S201中选定的至少一个模拟客户端。在触发行为处理逻辑时,本发明提供的计算机软件的测试方法支持同时向服务端发起请求或在若干秒内均匀向服务端发起请求,甚至可以采用更为复杂的请求发起策略。
步骤S204:查看显示信息,其中,显示信息包括以下至少之一:行为处理逻辑的配置,行为处理逻辑与客户端的映射关系,客户端与服务器的网络连接情况、客户端的状态的统计情况。
在本发明实施例中,通过循环执行上述步骤S201至步骤S204即可完成对免客户端测试脚本的控制,直至完成测试脚本的测试任务。
本发明实施例还提供了一种计算机软件的测试装置,该计算机软件的测试装置主要用于执行本申请实施例上述内容所提供的计算机软件的测试方法,以下对本申请实施例送提供的计算机软件的测试装置做具体介绍。
图3是根据本申请实施例的一种计算机软件的测试装置的示意图,如图3所示,该测试处理主要包括模拟单元301、行为处理逻辑单元303、连接代理单元305、状态单元307、逻辑映射单元309和测试单元311,其中:
模拟单元301,用于模拟多个客户端分别与服务器建立网络连接,模拟的客户端用于根据行为处理逻辑结合服务器进行软件测试。
在本发明实施例中,测试脚本为模拟多个客户端的行为处理逻辑的脚本,因此,该测试脚本又可以称为免客户端测试脚本。如果想要建立模拟的客户端与服务器的网络连接,则可以通过该测试脚本模拟多个客户端分别与服务器建立网络连接。由于在现有的脚本测试方案中,脚本测试大多是基于服务器的测试,因此,需要首先建立模拟的客户端与服务器之间的网络连接。在本发明实施例中,可以在测试脚本中编写相应地代码,以使该测试脚本在运行时即建立模拟的多个客户端与服务器的网络连接。
行为处理逻辑单元303,用于控制行为处理逻辑,行为处理逻辑为客户端与服务器的测试逻辑。
连接代理单元305,用于维护客户端与服务器的网络连接,以使客户端与服务器的网络连接不因行为处理逻辑的改变而改变。
在本发明实施例中,测试脚本为模拟多个客户端的行为处理逻辑的脚本,因此,该测试脚本又可以称为免客户端测试脚本。如果想要建立模拟的客户端与服务器的网络连接,则可以通过该测试脚本模拟多个客户端分别与服务器建立网络连接。由于在现有的脚本测试方案中,脚本测试大多是基于服务器的测试,因此,需要首先建立模拟的客户端与服务器之间的网络连接。在本发明实施例中,可以在测试脚本中编写相应地代码,以使该测试脚本在运行时即建立模拟的多个客户端与服务器的网络连接。
在本发明实施例中,测试脚本为模拟多个客户端的行为处理逻辑的脚本,因此,该测试脚本又可以称为免客户端测试脚本。如果想要建立模拟的客户端与服务器的网络连接,则可以通过该测试脚本模拟多个客户端分别与服务器建立网络连接。由于在现有的脚本测试方案中,脚本测试大多是基于服务器的测试,因此,需要首先建立模拟的客户端与服务器之间的网络连接。在本发明实施例中,可以在测试脚本中编写相应地代码,以使该测试脚本在运行时即建立模拟的多个客户端与服务器的网络连接。
状态单元307,对应于每个客户端,用于维护每个客户端的状态,以使每个客户端的状态在行为处理逻辑改变时得以延续。
在本发明实施例中,设置了状态单元,并通过状态单元维护客户端中每个客户端的状态,以使每个客户端的状态在行为处理逻辑改变时能够保持不变。其中,状态单元与客户端之间的对应关系为一一对应的,也就是说,一个状态单元维护一个模拟出的客户端的状态。
逻辑映射单元309,用于根据测试人员的指令为客户端配置行为处理逻辑。
在本发明实施例中,可以通过为测试脚本配置行为处理逻辑来为模拟的客户端配置行为处理逻辑。
如果模拟的客户端的数量为多个,那么可以根据测试人员的指令在模拟的多个客户端中选定至少一个客户端,然后,根据测试人员的指令为选定的至少一个客户端配置行为处理逻辑,并保存配置的行为处理逻辑与选定的至少一个客户端之间的映射关系。
测试单元311,用于根据配置的行为处理逻辑使用客户端与服务器进行软件测试。
在本发明实施例中,可以在模拟的客户端与服务器之间的网络连接不发生变化的情况下,或者在模拟的客户端中每个客户端的状态不发生变化的情况下,通过为每个模拟的客户端配置的行为处理逻辑对模拟的客户端中的至少一个客户端进行软件测试操作。
在本发明实施例中,通过维护模拟的多个客户端与服务器的网络连接,并同时维护模拟出的每个客户端的状态,使得测试脚本在网络连接或者每个客户端的状态不发生变化的情况下,对模拟出的多个客户端中的至少一个客户端进行测试,相对于现有技术中,在修改测试脚本的行为处理逻辑之后,还需要重启测试脚本的方案,本发明通过维护网络连接和模拟出的每个客户端的状态,达到了测试脚本在修改行为处理逻辑之后不需要重启脚本的目的,从而实现了快速对模拟的多个客户端进行测试的技术效果,进而解决了现有技术中测试脚本在修改行为处理逻辑之后需要重启的技术问题。
可选地,逻辑映射单元具体用于:根据测试人员的指令从多个客户端中选定至少一个客户端;选定的至少一个客户端配置行为处理逻辑,并保存配置的行为处理逻辑与选定的至少一个客户端之间的映射关系。
可选地,配置行为处理逻辑包括以下至少之一:新增行为处理逻辑、删除行为处理逻辑、修改行为处理逻辑、为选定的至少一个客户端新增行为处理逻辑、为选定的至少一个客户端删除行为处理逻辑、为选定的至少一个客户端修改行为处理逻辑。
可选地,行为处理逻辑的内容包括以下至少之一:协议层的数据包封装与解析、业务逻辑层的通知、广播、定时任务、所模拟客户端的目标操作。
可选地,客户端的状态包括以下至少之一:网络连接状态、网络重连历史、登录状态。
可选地,维护客户端与服务器的网络连接包括以下至少之一:创建客户端与服务器的连接、断开客户端与服务器的连接、接收服务器发送的数据包、向服务器发送数据包、缓存客户端与服务器的数据包。
可选地,还包括图形化辅助单元,用于以图形化的方式显示以下至少之一:行为处理逻辑的配置,行为处理逻辑与客户端的映射关系,客户端与服务器的网络连接情况、客户端的状态的统计情况。
图4是根据本发明实施例的一种计算机软件的测试装置的示意图,如图4所示,该计算机软件的测试装置包括服务器401、连接代理单元305、行为处理逻辑单元303、状态单元307、逻辑映射单元309和测试单元311,其中:
连接代理单元305用于维护模拟的多个客户端与服务器的网络连接,其中,维护客户端与服务器的网络连接包括以下至少之一:创建客户端与服务器的连接、断开客户端与服务器的连接、接收服务器发送的数据包、向服务器发送数据包、缓存客户端与服务器的数据包。
在本发明实施例中,可以设置由连接代理单元统一维护模拟的客户端与服务器的网络连接,能够确保在整个测试过程中无需断开模拟的客户端与服务器的网络连接,这使得测试人员能够在服务器无感知的情况下更改免客户端测试脚本的行为处理逻辑,而无需为此重启免客户端测试脚本和恢复测试场景。
状态单元307用于维护模拟的多个客户端中的每个客户端的状态,其中,状态单元与模拟出的客户端一一对应,也就是说,每个状态单元对应一个模拟的客户端,其中,模拟出的客户端的状态包括以下至少之一:网络连接状态、网络重连历史、登录状态等与业务逻辑相关的状态。
在一般情况下,测试脚本的测试逻辑会覆盖一段完整的测试逻辑。例如:测试聊天消息收发的测试脚本在发送聊天消息前需要先登录,登录前若发现未创建上述网络连接或网络连接已断开,则需要尝试建立新的网络连接或尝试断线重连。因此,是否创建过网络连接、是否已断开网络连接、是否已处于登录等状态需要依赖于前序的网络通信的结果。当用一段新测试逻辑替换旧有测试逻辑时,新测试逻辑需要从旧有测试逻辑处获得前述种种状态,正确的前序状态使得新测试逻辑能够直接执行正确的测试分支。
但是,在本发明实施例中,通过状态单元可以将测试脚本的测试逻辑与前述状态分离,由状态单元统一维护所有模拟出的客户端的状态,并提供各模拟出的客户端状态的查询与修改接口。测试逻辑可将其视为一个状态机,避免了每段测试逻辑都需要维护测试状态,简化了新旧测试逻辑间状态的传递。
可选地,状态单元在维护模拟出的客户端的状态时,可以将状态存储在脚本进程的内存中,或redis、memcached等内存数据库中,或mysql等关系型数据库、或mongodb等nosql数据库。
行为处理逻辑单元303和逻辑映射单元309用于通过配置的行为处理逻辑为选定的至少一个客户端进行测试。
行为处理逻辑单元303用于控制模拟的客户端脚本与服务器的通信逻辑,包括:协议层的数据包封装与解析,业务逻辑层的通知、广播、定时任务,所模拟客户端的目标操作等。
行为处理逻辑单元303与所模拟的客户端是一对多的映射关系,也就是说,可以复用行为处理逻辑单元中的行为处理逻辑,为选定的至少一个客户端配置行为处理逻辑。
行为处理逻辑单元303通过状态单元获取所模拟的客户端的实时状态,并根据相应地行为处理逻辑通过连接代理单元向服务器发送数据包;或处理服务器通过连接代理单元下发数据包的通知消息,并解析从服务器下发的数据包,并修改所模拟客户端在状态单元中的状态。
在一般情况下,协议层的数据包封装与解析,业务逻辑层的通知、广播、定时任务的改动频率较低,通过提供组织良好的基类或API接口能够有效的减少编写行为处理逻辑单元的代码量和难度。相应地,所模拟出的客户端的目标操作是测试过程中修改最为频繁的部分,测试人员会根据测试需要修改测试逻辑、新增测试逻辑等,为了在无人干预的情况下模拟真实用户的操作,该行为处理逻辑中的部分逻辑主要由定时器、服务器以广播的形式触发,但是,在执行一次性操作时需要由测试人员手动来触发相应地行为处理逻辑。
逻辑映射单元309用于维护行为处理逻辑单元303与状态单元307之间的一对多映射关系。也就是说,逻辑映射单元可以用于保存配置的行为处理逻辑与选定的至少一个客户端之间的映射关系。
逻辑映射单元309保存上述映射关系的方式可以有很多中,在本发明实施例中,逻辑映射单元309可以使用一个类似于Hash表的数据结构保存行为处理逻辑单元303与状态单元307的映射关系。在该Hash表中,以行为处理逻辑单元作为行键值key,状态单元的集合作为value。并提供新增行为处理逻辑单元、修改状态单元对应行为处理逻辑单元等接口。该类数据结构如python中的dict,或redis等支持key-value结构的内存数据库。
在通过测试脚本进行测试过程中,模拟出的客户端的用途也会经常随测试目标的变化而发生变化,因此,可以为模拟出的客户端变更对应的行为处理逻辑,进而改变其用途。其中,变更对应的行为处理逻辑包括以下至少之一:新增、删除行为处理逻辑,以及为所模拟的客户端指定、变更行为处理逻辑等。
新增行为处理逻辑可以为为预定的客户端新增行为处理逻辑,例如,为模拟出的多个客户端中的一个或多个客户端新增行为处理逻辑;删除行为处理逻辑可以为为预定的客户端删除行为处理逻辑,例如,为模拟出的多个客户端中的一个或多个客户端删除行为处理逻辑;修改行为处理逻辑可以为为预定的客户端修改行为处理逻辑,例如,为模拟出的多个客户端中的一个或多个客户端修改行为处理逻辑。
图5是根据本发明实施例的另一种计算机软件的测试装置的示意图,如图5所示,该计算机软件的测试装置包括服务器401、连接代理单元305、行为处理逻辑单元303、状态单元307和逻辑映射单元309、测试单元311和图形化辅助单元501,其中:
图形化辅助单元501用于通过图形化的方式维护逻辑映射单元309和行为处理逻辑单元303,当使用图形化的方式进行维护之后,用户就可以以图形化的方式查看和修改逻辑映射单元中的行为处理逻辑单元与状态单元的映射状态,也就是说,通过图形化的方式可以查看用于对模拟出的客户端进行测试的测试脚本的行为处理逻辑。
图形化辅助单元501还用于查看连接代理单元305和状态单元307的状态与统计信息。可选地,用户可以通过图形化辅助单元查看模拟的多个客户端中每个客户端与服务器的建立的网络连接状态;以及查看模拟的多个客户端中每个客户端与服务器的建立网络连接的客户端的数量;以及查看模拟的多个客户端中每个客户端的状态,例如,网络连接状态、网络重连历史、登录状态。
图形化辅助单元501还用于为用户提供配置的导入导出。
图形化辅助单元501还用于为用户提供实时修改行为处理逻辑单元等相关操作,例如,编辑和新建行为处理逻辑单元。
可选地,由于逻辑映射单元需要维护成千上万甚至更多的状态单元与行为处理逻辑单元的映射关系,因此,图形化辅助单元能够通过筛选、批量操作、拖拽等形式快速地配置状态单元和行为处理逻辑单元之间的关联状态。用于还可以通过图形化界面直接编辑、新建逻辑单元,并实时生效,此方法能够有效地节省每次修改后的部署操作。
例如,当需要部分模拟的客户端向服务器发送某条协议时,用于可通过图形化界面在模拟的多个客户端中框选至少一个客户端,并通过手动触发的方式执行额外的测试操作。在本发明实施例中,还可以通过图形化显示界面显示连接代理单元的连接状态、状态单元的统计情况以供用户查看。用于可以通过连接代理单元观察当前连接总数能够识别是否发生大面积掉线情况,以及通过状态单元观察当前登录用户总数能够判断是否有免客户端登录失败,甚至能够通过状态单元观察某一免客户端的详细状态信息。
需要说明的是,在本发明实施例中,如果被测客户端支持与状态单元同步客户端状态,并通过连接代理单元发送后续请求,被测客户端能够在服务器无感知的情况下接替免客户端测试脚本,将使用脚本进行的测试转为使用真实客户端进行的测试,这有利于查证、定位仅在高并发情况下概率性出现的测试漏洞。相应地,逻辑映射单元再次通过状态单元为该客户端与某一行为处理逻辑单元关联时,可将上述测试再次转为使用脚本进行的测试。
本发明实施提供的计算机软件的测试方法,通过免客户端测试脚本对客户端相应地的测试逻辑进行测试,在通过测试脚本进行测试的过程中,可以通过连接代理单元维护模拟出的多个客户端与服务器建立的网络连接,并通过状态单元维护模拟出的多个客户端中的每个客户端的状态从而,从而避免修改免客户端测试脚本的行为处理逻辑时引入的脚本重启问题,同时也避免重启后恢复测试场景的问题,降低了修改免客户端测试脚本行为处理逻辑的成本,提高了搭建由众多客户端共同组成的测试场景的效率。
在本发明的一个可选实施方式中,测试脚本中的行为处理逻辑包括以下至少之一:在预定状态下的客户端的行为处理逻辑、预定网络连接情况对应的行为处理逻辑、预定数量的客户端的行为处理逻辑、单个客户端的行为处理逻辑。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (14)

1.一种计算机软件的测试方法,其特征在于,包括:
通过测试脚本模拟多个客户端分别与服务器建立网络连接,所述测试脚本为模拟所述多个客户端的行为处理逻辑的脚本,模拟的所述客户端用于根据所述行为处理逻辑结合所述服务器进行软件测试,所述行为处理逻辑为所述客户端与所述服务器的测试逻辑;
维护所述客户端与所述服务器的网络连接,以使所述客户端与所述服务器的网络连接不因所述行为处理逻辑的改变而改变;
维护每个所述客户端的状态,以使每个所述客户端的状态在所述行为处理逻辑改变时得以延续;
根据测试人员的指令为所述客户端配置行为处理逻辑;
根据配置的所述行为处理逻辑使用所述客户端与所述服务器进行软件测试。
2.根据权利要求1所述的方法,其特征在于,所述根据测试人员的指令为所述客户端配置行为处理逻辑具体包括:
根据测试人员的指令从所述多个客户端中选定至少一个客户端;
根据测试人员的指令为选定的所述至少一个客户端配置所述行为处理逻辑,并保存配置的所述行为处理逻辑与选定的所述至少一个客户端之间的映射关系。
3.根据权利要求2所述的方法,其特征在于,
所述配置行为处理逻辑包括以下至少之一:新增行为处理逻辑、删除行为处理逻辑、修改行为处理逻辑、为选定的所述至少一个客户端新增行为处理逻辑、为选定的所述至少一个客户端删除行为处理逻辑、为选定的所述至少一个客户端修改行为处理逻辑。
4.根据权利要求1所述的方法,其特征在于,
所述行为处理逻辑的内容包括以下至少之一:协议层的数据包封装与解析、业务逻辑层的通知、广播、定时任务、所模拟客户端的目标操作。
5.根据权利要求1所述的方法,其特征在于,
所述客户端的状态包括以下至少之一:网络连接状态、网络重连历史、登录状态。
6.根据权利要求1所述的方法,其特征在于,
所述维护所述客户端与所述服务器的网络连接包括以下至少之一:创建所述客户端与所述服务器的连接、断开所述客户端与所述服务器的连接、接收所述服务器发送的数据包、向所述服务器发送数据包、缓存所述客户端与所述服务器的数据包。
7.根据权利要求1所述的方法,其特征在于,以图形化的方式显示以下至少之一:所述行为处理逻辑的配置,所述行为处理逻辑与所述客户端的映射关系,所述客户端与所述服务器的网络连接情况、所述客户端的状态的统计情况。
8.一种计算机软件的测试装置,其特征在于,包括:
模拟单元,用于通过测试脚本模拟多个客户端分别与服务器建立网络连接,所述测试脚本为模拟所述多个客户端的行为处理逻辑的脚本,模拟的所述客户端用于根据所述行为处理逻辑结合所述服务器进行软件测试;
行为处理逻辑单元,用于控制行为处理逻辑,所述行为处理逻辑为所述客户端与所述服务器的测试逻辑;
连接代理单元,用于维护所述客户端与所述服务器的网络连接,以使所述客户端与所述服务器的网络连接不因所述行为处理逻辑的改变而改变;
状态单元,对应于每个所述客户端,用于维护每个所述客户端的状态,以使每个所述客户端的状态在所述行为处理逻辑改变时得以延续;
逻辑映射单元,用于根据测试人员的指令为所述客户端配置行为处理逻辑;
测试单元,用于根据配置的所述行为处理逻辑使用所述客户端与所述服务器进行软件测试。
9.根据及权利要求8所述的装置,其特征在于,所述逻辑映射单元具体用于:
根据测试人员的指令从所述多个客户端中选定至少一个客户端;
根据测试人员的指令为选定的所述至少一个客户端配置所述行为处理逻辑,并保存配置的所述行为处理逻辑与选定的所述至少一个客户端之间的映射关系。
10.根据权利要求9所述的装置,其特征在于,
所述配置行为处理逻辑包括以下至少之一:新增行为处理逻辑、删除行为处理逻辑、修改行为处理逻辑、为选定的所述至少一个客户端新增行为处理逻辑、为选定的所述至少一个客户端删除行为处理逻辑、为选定的所述至少一个客户端修改行为处理逻辑。
11.根据权利要求8所述的装置,其特征在于,
所述行为处理逻辑的内容包括以下至少之一:协议层的数据包封装与解析、业务逻辑层的通知、广播、定时任务、所模拟客户端的目标操作。
12.根据权利要求8所述的装置,其特征在于,
所述客户端的状态包括以下至少之一:网络连接状态、网络重连历史、登录状态。
13.根据权利要求8所述的装置,其特征在于,
所述维护所述客户端与所述服务器的网络连接包括以下至少之一:创建所述客户端与所述服务器的连接、断开所述客户端与所述服务器的连接、接收所述服务器发送的数据包、向所述服务器发送数据包、缓存所述客户端与所述服务器的数据包。
14.根据权利要求8所述的装置,其特征在于,还包括图形化辅助单元,用于以图形化的方式显示以下至少之一:所述行为处理逻辑的配置,所述行为处理逻辑与所述客户端的映射关系,所述客户端与所述服务器的网络连接情况、所述客户端的状态的统计情况。
CN201610524060.2A 2016-07-04 2016-07-04 计算机软件的测试方法和装置 Active CN106126426B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610524060.2A CN106126426B (zh) 2016-07-04 2016-07-04 计算机软件的测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610524060.2A CN106126426B (zh) 2016-07-04 2016-07-04 计算机软件的测试方法和装置

Publications (2)

Publication Number Publication Date
CN106126426A CN106126426A (zh) 2016-11-16
CN106126426B true CN106126426B (zh) 2018-09-11

Family

ID=57468313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610524060.2A Active CN106126426B (zh) 2016-07-04 2016-07-04 计算机软件的测试方法和装置

Country Status (1)

Country Link
CN (1) CN106126426B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463491A (zh) * 2017-06-28 2017-12-12 努比亚技术有限公司 一种终端软件测试方法、待测终端及计算机可读存储介质
CN112463580B (zh) * 2019-09-09 2024-07-12 英业达科技有限公司 基于虚拟化装置的测试系统及其方法
CN114726577B (zh) * 2022-03-02 2024-07-09 武汉天喻信息产业股份有限公司 一种供于测试的通信系统及数据篡改方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101056212A (zh) * 2006-04-10 2007-10-17 上海欣泰通信技术有限公司 通过推技术实现Web页面进行ADSL测试的方法
CN101295280A (zh) * 2008-06-18 2008-10-29 腾讯科技(深圳)有限公司 自动化软件调测方法及系统
CN102761453A (zh) * 2011-04-26 2012-10-31 腾讯科技(深圳)有限公司 一种测试客户端可用性的方法及客户端
KR101520056B1 (ko) * 2014-08-24 2015-05-20 주식회사 큐랩 클라우드 기반 모바일/온라인 게임 서버 부하 테스트 자동화 서비스 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130065694A1 (en) * 2011-09-13 2013-03-14 Electronics And Telecommunications Research Institute Method for performance test of online game server

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101056212A (zh) * 2006-04-10 2007-10-17 上海欣泰通信技术有限公司 通过推技术实现Web页面进行ADSL测试的方法
CN101295280A (zh) * 2008-06-18 2008-10-29 腾讯科技(深圳)有限公司 自动化软件调测方法及系统
CN102761453A (zh) * 2011-04-26 2012-10-31 腾讯科技(深圳)有限公司 一种测试客户端可用性的方法及客户端
KR101520056B1 (ko) * 2014-08-24 2015-05-20 주식회사 큐랩 클라우드 기반 모바일/온라인 게임 서버 부하 테스트 자동화 서비스 방법

Also Published As

Publication number Publication date
CN106126426A (zh) 2016-11-16

Similar Documents

Publication Publication Date Title
CN106126402B (zh) 加速器异常的处理方法及装置
CN106126426B (zh) 计算机软件的测试方法和装置
CN109344126B (zh) 贴图的处理方法、装置、存储介质和电子装置
CN105119966A (zh) 一种公众号管理方法及装置
CN110830234B (zh) 一种用户流量分配方法及装置
CN109636304B (zh) 业务系统的发布方法及装置、存储介质、电子装置
CN110196804B (zh) 业务的测试方法和装置、存储介质、电子装置
CN105303112A (zh) 组件调用漏洞的检测方法及装置
CN102036275A (zh) 一种模拟器和消息处理方法
CN105607997A (zh) 一种软件产品后台服务测试方法、装置及系统
CN107896173A (zh) 自动化测试方法、测试设备、自动化测试系统及存储介质
CN103605609A (zh) 一种适用于云计算的自动化测试框架
CN111181800A (zh) 测试数据处理方法、装置、电子设备及存储介质
CN111651320A (zh) 一种高并发连接方法和系统
CN106067879A (zh) 信息的检测方法及装置
CN106682014B (zh) 游戏展示数据的生成方法和装置
CN110297815A (zh) 数据库管理方法、装置、终端及计算机可读存储介质
CN108011870B (zh) 一种软件远程在线升级信息自动识别管理方法
CN116319492A (zh) 交换机的测试方法、装置、存储介质及电子设备
CN110650063A (zh) 一种集中式的银行第三方软件仿真系统及方法
CN110825538A (zh) 一种基于mq可自定义数据类型动态进行数据交互的方法
CN106201410A (zh) 一种信息展示方法及装置
CN113238950A (zh) 一种分布式系统测试的系统及方法、存储介质、电子设备
CN116451191A (zh) 信息审核方法、装置、电子设备和计算机可读存储介质
CN109656830B (zh) 一种软件产品性能测试方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant