CN103593294B - 网络游戏性能测试方法及系统 - Google Patents
网络游戏性能测试方法及系统 Download PDFInfo
- Publication number
- CN103593294B CN103593294B CN201310595306.1A CN201310595306A CN103593294B CN 103593294 B CN103593294 B CN 103593294B CN 201310595306 A CN201310595306 A CN 201310595306A CN 103593294 B CN103593294 B CN 103593294B
- Authority
- CN
- China
- Prior art keywords
- game
- test
- role
- script
- module
- 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
Links
- 238000011056 performance test Methods 0.000 title claims abstract description 55
- 230000003993 interaction Effects 0.000 claims abstract description 38
- 230000002452 interceptive Effects 0.000 claims abstract description 36
- 238000004088 simulation Methods 0.000 claims abstract description 33
- 230000000875 corresponding Effects 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims abstract description 7
- 230000015572 biosynthetic process Effects 0.000 claims abstract 3
- 238000005755 formation reaction Methods 0.000 claims abstract 3
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 235000010384 tocopherol Nutrition 0.000 claims description 6
- 235000019731 tricalcium phosphate Nutrition 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000001808 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000000605 extraction Methods 0.000 claims description 2
- 238000009472 formulation Methods 0.000 claims description 2
- 239000000203 mixture Substances 0.000 claims description 2
- 238000009937 brining Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 206010022114 Injury Diseases 0.000 description 1
- 238000011030 bottleneck Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000039 congener Substances 0.000 description 1
- 230000023298 conjugation with cellular fusion Effects 0.000 description 1
- 230000002596 correlated Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000021037 unidirectional conjugation Effects 0.000 description 1
Abstract
本发明公开一种网络游戏性能测试方法,包括:采用自动化测试工具录制各种角色操作形成测试脚本,对测试脚本进行处理并生成测试脚本集;连接测试脚本集和游戏服务器,采用自动化测试工具设置模拟游戏角色及个数,根据预先设置的模拟游戏角色及角色交互规则调用与模拟游戏角色相应的测试脚本,并运行测试脚本以模拟角色间的互动操作;采用自动化测试工具监控游戏服务器的性能变化、收集测试脚本运行结果并输出性能测试报告。本发明还公开一种网络游戏性能测试系统。
Description
技术领域
本发明涉及一种网络游戏性能测试方法及系统。
背景技术
在网络游戏正式发布前,一般需要对该游戏系统进行性能测试,通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。在短时间内,由一定数量级的游戏角色(即游戏中由用户操作的游戏角色)同时进行游戏,以测试游戏服务器及服务器程序的稳定性以及可靠性。
当前主要有三种类型的网络游戏,分别是:传统的C/S架构的网络游戏、B/S架构的网页游戏、WAP网络游戏,在不同类型的网络游戏中,游戏角色操作均可划分为两大类:
1)是游戏客户端与游戏服务器的交互,如:登陆,创建角色,购买道具之类。这类交互数据包包括游戏客户端发送请求包给游戏服务器,游戏客户端接收游戏服务器返回的应答包。
2)是角色与角色之间的交互,如:游戏角色之间的聊天,游戏角色之间的战斗。例如,当游戏客户端A要与游戏客户端B交互时,这类交互数据包包括游戏客户端A发送要与游戏客户端B交互的操作请求信息给游戏服务器,游戏服务器再把操作请求信息发送到游戏客户端B,游戏客户端B通过游戏服务器发送交互信息至游戏客户端A。
针对上述类型的网络游戏,现有主要的性能测试方法有如下几种:
1)机器人模拟技术:自主研发一系列机器人程序,每个机器人都分别模拟一个在网络游戏中由游戏用户操作的游戏角色,然后通过批量控制机器人程序实现多用户操作,达到性能测试的效果。
2)采用自动化测试工具进行性能测试:录制底层协议来模拟用户访问游戏服务器,与游戏服务器进行交互。
3)进行内测、公测、封测等开放性能测试,让大量的游戏用户在测试游戏服务器中进行游戏,进行真实的性能测试。
现有性能测试方法的缺点如下:
1)机器人模拟技术和自动化测试工具进行性能测试的缺点是:机器人或自动化测试工具生生成的测试脚本只能模拟游戏角色和游戏服务器的数据交互,但无法实现不同游戏角色之间的互动与交流,因此所模拟的游戏角色的行为呆板,难以模拟大量游戏角色之间的复杂行为,即游戏中各个游戏角色之间的各种交互行为,例如:聊天、组队、多人副本、PK等),从而难以满足游戏测试的需要。
2)公测/内测/封测需要前期宣传,成本投入偏高,参与测试的人数和规模不确定。
发明内容
为了解决现有技术采用机器人或自动化测试工具生生成的测试脚本只能模拟游戏角色和游戏服务器的数据交互,但无法实现不同游戏角色之间的互动与交流的技术缺陷,本发明提供一种网络游戏性能测试方法及系统。
本发明采用的一个技术方案是:
提供一种网络游戏性能测试方法,包括步骤S101、采用自动化测试工具录制获取网络游戏完整运行后的游戏数据和操作脚本,根据角色操作类型拆分操作脚本生成测试脚本,对测试脚本进行处理并生成测试脚本集;S102、采用自动化测试工具设置模拟游戏角色的个数,连接测试脚本集和游戏服务器,根据预先设置的模拟游戏角色以及角色交互规则调用相应的测试脚本,并运行测试脚本以模拟角色间的交互操作;S103、采用自动化测试工具监控游戏服务器的性能变化、收集测试脚本运行结果并输出不同并发游戏用户条件下的初始性能测试数据,所述初始性能测试数据包含操作响应时间、吞吐量、每秒操作数、游戏服务器CPU以及内存信息;S104、将所述初始性能测试数据与测试前协商制定的关键性能指标进行对比分析,评估该游戏系统可支持的用户级别以及在不同用户级别下对应的系统性能,并根据所述不同用户级别下对应的系统性能输出性能测试报告。
本发明采用的另一个技术方案是:
提供一种网络游戏性能测试系统,包括测试计算机、游戏服务器、游戏客户端,所述测试计算机包括自动化测试工具、测试脚本集生成模块、运行模块、实时监控模块以及测试结果生成模块;所述测试脚本集生成模块用于采用自动化测试工具录制获取网络游戏完整运行后的游戏数据和操作脚本,根据角色操作类型拆分操作脚本生成测试脚本,对测试脚本进行处理并生成测试脚本集;所述运行模块用于采用自动化测试工具设置模拟游戏角色的个数,连接测试脚本集和游戏服务器,根据预先设置的模拟游戏角色以及角色交互规则调用相应的测试脚本,并运行测试脚本以模拟角色间的交互操作;所述实时监控模块用于采用自动化测试工具监控游戏服务器的性能变化、收集测试脚本运行结果并输出不同并发游戏用户条件下的初始性能测试数据,所述初始性能测试数据包含操作响应时间、吞吐量、每秒操作数、游戏服务器CPU以及内存信息;所述测试结果生成模块用于将所述初始性能测试数据与测试前协商制定的关键性能指标进行对比分析,评估该游戏系统可支持的用户级别以及在不同用户级别下对应的系统性能,并根据所述不同用户级别下对应的系统性能输出性能测试报告。
本发明的网络游戏性能测试方法和系统,通过实时监控模块和自动化工具录制脚本相结合模拟游戏系统中游戏用户的各种角色操作,解决机器人程序或自动化测试工具无法实现游戏角色的交互问题;能根据测试需要多线程调用测试脚本,模拟多个虚拟游戏角色操作,实现对游戏系统的性能测试;利用自动化测试工具强大的性能监控和分析功能,实现对游戏系统性能测试。
附图说明
图1是本发明一实施方式中一种网络游戏性能测试系统的架构图;
图2是本发明一实施方式中一种网络游戏性能测试方法的执行流程图;
主要元件符号说明
测试计算机 10
游戏服务器 20
游戏客户端 30
自动化测试工具 11
测试脚本集生成模块 12
运行模块 13
实时监控模块 14
测试结果生成模块 15
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请一并参阅图1,是本发明一实施方式中一种网络游戏性能测试系统的架构图。该网络游戏性能测试系统,包括测试计算机10、游戏服务器20、游戏客户端30,所述测试计算机10包括自动化测试工具11、测试脚本集生成模块12、运行模块13、实时监控模块14以及测试结果生成模块15。
所述测试脚本集生成模块12用于采用自动化测试工具11录制获取网络游戏完整运行后的游戏数据和操作脚本,根据角色操作类型拆分操作脚本生成测试脚本,对测试脚本进行处理并生成测试脚本集。
所述运行模块13用于采用自动化测试工具11设置模拟游戏角色的个数,连接测试脚本集和游戏服务器,根据预先设置的模拟游戏角色以及角色交互规则调用相应的测试脚本,并运行测试脚本以模拟角色间的交互操作。
所述实时监控模块14用于采用自动化测试工具11监控游戏服务器20的性能变化、收集测试脚本运行结果并输出不同并发游戏用户条件下的初始性能测试数据,所述初始性能测试数据包含操作响应时间、吞吐量、每秒操作数、游戏服务器CPU以及内存信息。
所述测试结果生成模块15用于将所述初始性能测试数据与测试前协商制定的关键性能指标进行对比分析,评估该游戏系统可支持的用户级别以及在不同用户级别下对应的系统性能,并根据所述不同用户级别下对应的系统性能输出性能测试报告。
在本实施方式中,所述测试脚本集生成模块12包括登录模块、录制模块、脚本参数化模块、脚本配置模块、脚本拆分模块、脚本集生成模块。
登录模块用于通过自动化测试工具启动并调用游戏客户端30进行登录操作;录制模块用于通过自动化测试工具调用登陆成功的游戏客户端30和游戏服务器进行游戏交互操作,录制获取网络游戏完整运行后的游戏数据和操作脚本;脚本参数化模块用于对录制的操作脚本进行参数化:把不同请求中和游戏角色相关信息分别用参数替换,并将参数值存入参数文件中,所述参数包括游戏角色账号、角色操作类型、角色操作信息;脚本配置模块用于对录制的操作脚本进行配置,所述配置包含加入操作间隔时间、加入集合点、以及在每个交互操作加入检查点;脚本拆分模块用于按角色操作类型把录制的操作脚本进行拆分,使每个游戏角色账号操作的游戏角色的交互操作形成一个单独的测试脚本;脚本集生成模块用于为每个测试脚本打上一个与角色操作类型唯一对应的操作标识ID,然后汇总测试脚本生成测试脚本集。
在本实施方式中,所述运行模块13包括设置模块、连接模块、判断模块、执行模块。
设置模块用于通过自动化测试工具根据参数文件设置参与测试的游戏角色账号、模拟游戏角色个数和测试持续时间;连接模块用于通过自动化测试工具调用与游戏角色账号相应的登录脚本,监控游戏服务器返回登录成功报文,使所有的测试脚本与游戏服务器建立TCP连接;判断模块用于当所述连接模块简历TCP连接成功后,发送请求报文至游戏服务器,监控游戏服务器返回的交互信息报文,按数据包大小字段拆分交互信息报文,分别提取操作类型和消息元素,判断提取的操作类型和消息元素与预先设置的角色交互规则中的操作类型和操作结果状态字段是否匹配;执行模块用于当所述判断模块判定匹配时,把游戏服务器返回的交互信息报文的全部消息元素存放在角色交互规则的角色操作信息字段中,并通知自动化测试工具从测试脚本集中依次调用与该角色交互规则中操作标识ID对应的测试脚本。
请参阅图2,是本发明一实施方式中一种网络游戏性能测试方法的执行流程图,该网络游戏性能测试方法包括:
步骤S101、采用自动化测试工具录制获取网络游戏完整运行后的游戏数据和操作脚本,根据角色操作类型拆分操作脚本生成测试脚本,对测试脚本进行处理并生成测试脚本集。其中,所述游戏数据包括:游戏客户端和游戏服务器在每次游戏交互操作过程中的交互信息、以及网络游戏从开始到结束的完整运行逻辑,即游戏流程。所述交互信息包括数据输出信息、数据输入信息。所述操作脚本包含游戏交互操作过程中所有的游戏客户端请求和游戏服务器应答。
步骤S102、采用自动化测试工具设置模拟游戏角色及个数,连接测试脚本集和游戏服务器,根据预先设置的模拟游戏角色以及角色交互规则调用相应的测试脚本,并运行测试脚本以模拟角色间的交互操作。
步骤S103、采用自动化测试工具监控游戏服务器的性能变化、收集测试脚本运行结果并输出不同并发游戏用户条件下的初始性能测试数据,所述初始性能测试数据包含操作响应时间、吞吐量、每秒操作数、游戏服务器CPU以及内存信息。
步骤S104、将所述初始性能测试数据与测试前制定的关键性能指标进行对比分析,评估游戏服务器可支持的游戏角色级别以及在不同游戏角色级别下对应的系统性能,并根据所述不同游戏角色级别下对应的系统性能输出性能测试报告。
其中,自动化测试工具安装在测试计算机上,待测试的游戏客户端安装在测试设备上,上述网络游戏一般是指MMORPG游戏,上述测试设备可以是的计算机、手机、PAD等。
下面结合游戏用户撮合战斗为实例,对本发明的网络游戏性能测试方法进行进一步详细的说明。在游戏用户撮合战斗实例中,游戏流程包括:登录、创建房间、进入房间、撮合、战斗、发动技能攻击、战斗结束等。
在本实施方式中,所述步骤S101具体包括如下步骤:
步骤S1011、通过自动化测试工具启动并调用游戏客户端进行登录操作。
步骤S1012、通过自动化测试工具调用登陆成功的游戏客户端和游戏服务器进行游戏交互操作,录制获取网络游戏完整运行后的游戏数据和操作脚本。
步骤S1013、对录制的操作脚本进行参数化:把不同请求中和游戏角色相关信息分别用参数替换,并将参数值存入参数文件中。如此,测试执行时脚本自动从参数文件中读取相应参数值,所述参数包括游戏角色账号、角色操作类型、角色操作信息等。
步骤S1014、对录制的操作脚本进行配置,所述配置包含加入操作间隔时间、加入集合点、以及在每个交互操作加入检查点。其中,操作间隔时间用于模拟真实游戏用户的思考时间,可以反应不同操作熟练程度的游戏用户;集合点用于模拟大量游戏用户在同一个时间点的游戏操作;检查点用于在交互操作后面增加结果判定,检查该交互操作是否有得到预期的返回值或图片信息等。
步骤S1015、按角色操作类型把录制的操作脚本进行拆分,使每个游戏角色账号操作的游戏角色的交互操作形成一个单独的测试脚本。即,每个测试脚本分别模拟一个在网络游戏中由游戏角色账号操作的游戏角色。
步骤S1016、为每个测试脚本打上一个与角色操作类型唯一对应的操作标识ID,然后汇总测试脚本生成测试脚本集。
具体地,所述步骤S102包括如下步骤:
步骤S1021、通过自动化测试工具根据参数文件设置参与测试的游戏角色账号、模拟游戏角色个数和测试持续时间。
步骤S1022、通过自动化测试工具调用与游戏角色账号相应的登录脚本,监控游戏服务器返回登录成功报文,使所有的测试脚本与游戏服务器建立TCP连接,然后进入步骤S1023。在本步骤中,登录成功时游戏服务器返回的登陆成功报文包含:游戏角色账号信息、游戏服务器ID、房间列表信息。
步骤S1023、发送请求报文至游戏服务器,监控游戏服务器返回的交互信息报文,按数据包大小字段拆分交互信息报文,分别提取操作类型和消息元素,判断提取的操作类型和消息元素与预先设置的角色交互规则中的操作类型和操作结果状态字段是否匹配,若是,执行步骤S1024。
不同的操作类型有不同的结果状态,所以要分别提取返回的交互信息报文中的操作类型、操作结果状态字段。角色交互规则中预设不同操作类型可能的结果状态,提取字段进行匹配比较,如果操作类型、结果状态字段这两组字符相同,则判断为与交互规则匹配,决定下一个阶段的操作标识ID,即决定调用哪个测试脚本。
请参阅表一,是交互信息报文的数据结构,交互信息报文的字段包括数据包大小、操作类型、消息元素。
数据包大小(MsgSize)字段表示数据包的大小,用于分割不同的消息包,不同类型的数据包的大小可以不相同,因此,任何类型的数据包中都具有该字段,通过该字段即可获知该数据包的大小。
操作类型(MsgType)字段是一个字符串,表示角色操作类型,用于区分不同种类的角色交互信息。
消息元素(MsgObj)字段是一个字符串,用于区分同一操作类型下不同的信息内容。例如,消息元素字段中可以是游戏客户端游所模拟的游戏角色的名字,表明该数据包是由某个游戏角色对应的游戏客户端模拟写入的信息。
表一请求报文的结构
请参阅表二,是角色交互规则的结构,角色交互规则的字段包括操作类型、角色操作信息、操作结果状态、操作标识ID。
操作类型rMsgType是数据包对应的角色操作类型,也可称为协议号。
角色操作信息rMsg存放游戏服务器返回的交互信息报文的消息元素,用于传给下一个被调用的测试脚本作为请求参数取值,该求参数即为请求报文所含有的参数。
操作结果状态rResult用于存放操作成功、失败时返回的特定消息元素,例如0代表成功、1代表失败。
表二角色交互规则的结构
例如,在游戏用户撮合战斗中,请求报文包括创建房间请求、进入房间请求、撮合请求。创建房间的消息元素包括房间名字、房间类型。进入房间的消息元素包括房间id。撮合的消息元素包括游戏角色账号、房间id、角色的名字。
步骤S1024、把游戏服务器返回的交互信息报文的全部消息元素存放在角色交互规则的角色操作信息字段中,并通知自动化测试工具从测试脚本集中依次调用与该角色交互规则中操作标识ID对应的测试脚本。例如,在本实例中,依次调用创建房间测试脚本、进入房间测试脚本、撮合测试脚本。创建房间测试脚本的消息元素包括房间名字、房间类型;进入房间测试脚本的消息元素包括房间id;撮合测试脚本的消息元素包括游戏角色账号、房间id、角色的名字。
具体地,当检测到游戏服务器返回登录成功报文后即通知自动化测试工具调用创建房间测试脚本;当检测到服务返回创建房间成功报文后即通知自动化测试工具调用进入房间测试脚本;当检测到游戏服务器返回进入房间成功报文后即通知自动化测试工具调用撮合测试脚本。
例如,在游戏用户撮合战斗实例中,提交撮合请求后,等待游戏服务器撮合配对战斗的游戏角色账号;游戏服务器收到撮合请求后,在规定时间(例如1分钟)内根据撮合规则(例如提交撮合请求的时间先后顺序)进行自动撮合;如果在规定时间内,有其他游戏角色账号也提交撮合请求,则游戏服务器撮合配对这两个游戏角色;如果在规定时间内,没有其他游戏角色账号提交撮合请求,则游戏服务器分配一个机器人与提交撮合请求的游戏角色撮合配对;若在规定时间内撮合失败,则返回撮合超时数据包;若在规定时间内撮合成功,则游戏服务器返回撮合成功数据包,同时下发撮合成功的广播数据包给各个游戏客户端。
监控游戏服务器返回的数据包;如果在规定时间内(客户端1分钟超时)未收到撮合成功的数据包,则撮合失败,用户账号退出;如果收到撮合成功的广播数据包,则保存广播数据包中的战斗ID、游戏角色坐标ID、对手游戏角色坐标ID、以及先出手游戏角色账号,并通知自动化测试工具调用下一环节,即初始化游戏客户端的测试脚本。完成游戏客户端初始化后,发送初始化完成消息给游戏服务器;监控游戏服务器返回的交互信息数据包,保存返回交互信息的操作类型MsgType,根据操作类型和消息元素执行下一步模拟战斗过程。
广播数据包是服务器根据游戏设计定义返回对应数据,包含下一个交互操作需要的初始数据,包含游戏角色的初始数据以及上一个操作后游戏服务器处理结果的信息数据等。
如果游戏服务器广播消息为:返回服务器发送某个游戏角色出手消息(广播),则保存数据包中的出手游戏角色账号,根据出手游戏角色账号通知自动化测试工具调用该游戏角色账号的出手测试脚本,此时对手游戏角色则等待;
如果游戏服务器广播消息为:服务器发送出手结果消息(广播),服务器发送伤害结果消息(广播),则游戏角色对应游戏客户端发送本轮出手结束消息,此时轮到对方出手,我方游戏角色等待。
如果游戏服务器广播消息为:服务器发送胜负消息(广播),则游戏双方发送战斗结束消息退出到房间;保存广播消息包中的胜利者游戏角色账号,来判断胜负方。
在自动化测试工具设置的测试持续时间内,会持续进行多次游戏用户撮合战斗,模拟大量游戏角色持续进行撮合战斗操作,从而测试持续进行游戏用户撮合战斗时游戏服务器的性能表现。
本发明的有益效果在于:区别于现有技术的采用机器人或自动化测试工具生生成的测试脚本只能模拟游戏角色和游戏服务器的数据交互,但无法实现不同游戏角色之间的互动与交流的技术缺陷,本发明的网络游戏性能测试方法和系统,通过模拟游戏系统中的各种游戏角色操作,解决机器人程序或自动化测试工具无法实现游戏角色的交互问题;能根据测试需要多线程调用测试脚本,模拟多个虚拟游戏角色操作,实现对游戏系统的性能测试;利用自动化测试工具强大的性能监控和分析功能,实现对游戏系统性能测试。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (4)
1.一种网络游戏性能测试方法,其特征在于,包括:
S101、采用自动化测试工具录制获取网络游戏完整运行后的游戏数据和操作脚本,根据角色操作类型拆分操作脚本生成测试脚本,对测试脚本进行处理并生成测试脚本集;
所述步骤S101具体包括如下步骤:
S1011、通过自动化测试工具启动并调用游戏客户端进行登录操作;
S1012、通过自动化测试工具调用登陆成功的游戏客户端和游戏服务器进行游戏交互操作,录制获取网络游戏完整运行后的游戏数据和操作脚本;
S1013、对录制的操作脚本进行参数化:把不同请求中和游戏角色相关信息分别用参数替换,并将参数值存入参数文件中,所述参数包括游戏角色账号、角色操作类型、角色操作信息;
S1014、对录制的操作脚本进行配置,所述配置包含加入操作间隔时间、加入集合点、以及在每个交互操作加入检查点;
S1015、按角色操作类型把录制的操作脚本进行拆分,使每个游戏角色账号操作的游戏角色的交互操作形成一个单独的测试脚本;
S1016、为每个测试脚本打上一个与角色操作类型唯一对应的操作标识ID,然后汇总测试脚本生成测试脚本集;
S102、采用自动化测试工具设置模拟游戏角色及个数,连接测试脚本集和游戏服务器,根据预先设置的模拟游戏角色以及角色交互规则调用相应的测试脚本,并运行测试脚本以模拟角色间的交互操作;
S103、采用自动化测试工具监控游戏服务器的性能变化、收集测试脚本运行结果并输出不同并发游戏用户条件下的初始性能测试数据,所述初始性能测试数据包含操作响应时间、吞吐量、每秒操作数、游戏服务器CPU以及内存信息;
S104、将所述初始性能测试数据与测试前协商制定的关键性能指标进行对比分析,评估该游戏系统可支持的用户级别以及在不同用户级别下对应的系统性能,并根据所述不同用户级别下对应的系统性能输出性能测试报告。
2.根据权利要求1所述的一种网络游戏性能测试方法,其特征在于,所述步骤S102包括如下步骤:
S1021、通过自动化测试工具根据参数文件设置参与测试的游戏角色账号、模拟游戏角色个数和测试持续时间;
S1022、通过自动化测试工具调用与游戏用户账号相应的登录脚本,监控游戏服务器返回登录成功报文,使所有的测试脚本与游戏服务器建立TCP连接,然后进入步骤S1023;
S1023、发送请求报文至游戏服务器,监控游戏服务器返回的交互信息报文,按数据包大小字段拆分交互信息报文,分别提取操作类型和消息元素,判断提取的操作类型和消息元素与预先设置的角色交互规则中的操作类型和操作结果状态字段是否匹配,若是,执行步骤S1024;
S1024、把游戏服务器返回的交互信息报文的全部消息元素存放在角色交互规则的角色操作信息字段中,并通知自动化测试工具从测试脚本集中依次调用与该角色交互规则中操作标识ID对应的测试脚本。
3.一种网络游戏性能测试系统,其特征在于,包括测试计算机、游戏服务器、游戏客户端,所述测试计算机包括自动化测试工具、测试脚本集生成模块、运行模块、实时监控模块以及测试结果生成模块;
所述测试脚本集生成模块用于采用自动化测试工具录制获取网络游戏完整运行后的游戏数据和操作脚本,根据角色操作类型拆分操作脚本生成测试脚本,对测试脚本进行处理并生成测试脚本集;
所述测试脚本集生成模块包括:
登录模块,用于通过自动化测试工具启动并调用游戏客户端进行登录操作;
录制模块,用于通过自动化测试工具调用登陆成功的游戏客户端和游戏服务器进行游戏交互操作,录制获取网络游戏完整运行后的游戏数据和操作脚本;
脚本参数化模块,用于对录制的操作脚本进行参数化:把不同请求中和游戏角色相关信息分别用参数替换,并将参数值存入参数文件中,所述参数包括游戏角色账号、角色操作类型、角色操作信息;
脚本配置模块,用于对录制的操作脚本进行配置,所述配置包含加入操作间隔时间、加入集合点、以及在每个交互操作加入检查点;
脚本拆分模块,用于按角色操作类型把录制的操作脚本进行拆分,使每个游戏角色账号操作的游戏角色的交互操作形成一个单独的测试脚本;以及
脚本集生成模块,用于为每个测试脚本打上一个与角色操作类型唯一对应的操作标识ID,然后汇总测试脚本生成测试脚本集;
所述运行模块用于采用自动化测试工具设置模拟游戏角色及个数,连接测试脚本集和游戏服务器,根据预先设置的模拟游戏角色以及角色交互规则调用相应的测试脚本,并运行测试脚本以模拟角色间的交互操作;
所述实时监控模块用于采用自动化测试工具监控游戏服务器的性能变化、收集测试脚本运行结果并输出不同并发游戏用户条件下的初始性能测试数据,所述初始性能测试数据包含操作响应时间、吞吐量、每秒操作数、游戏服务器CPU以及内存信息;
所述测试结果生成模块用于将所述初始性能测试数据与测试前协商制定的关键性能指标进行对比分析,评估该游戏系统可支持的用户级别以及在不同用户级别下对应的系统性能,并根据所述不同用户级别下对应的系统性能输出性能测试报告。
4.根据权利要求3所述的一种网络游戏性能测试系统,其特征在于,所述运行模块包括:
设置模块,用于通过自动化测试工具根据参数文件设置参与测试的游戏角色账号、模拟游戏角色个数和测试持续时间;
连接模块,用于通过自动化测试工具调用与游戏角色账号相应的登录脚本,监控游戏服务器返回登录成功报文,使所有的测试脚本与游戏服务器建立TCP连接;
判断模块,用于当所述连接模块简历TCP连接成功后,发送请求报文至游戏服务器,监控游戏服务器返回的交互信息报文,按数据包大小字段拆分交互信息报文,分别提取操作类型和消息元素,判断提取的操作类型和消息元素与 预先设置的角色交互规则中的操作类型和操作结果状态字段是否匹配;以及
执行模块,用于当所述判断模块判定匹配时,把游戏服务器返回的交互信息报文的全部消息元素存放在角色交互规则的角色操作信息字段中,并通知自动化测试工具从测试脚本集中依次调用与该角色交互规则中操作标识ID对应的测试脚本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310595306.1A CN103593294B (zh) | 2013-11-21 | 网络游戏性能测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310595306.1A CN103593294B (zh) | 2013-11-21 | 网络游戏性能测试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103593294A CN103593294A (zh) | 2014-02-19 |
CN103593294B true CN103593294B (zh) | 2016-11-30 |
Family
ID=
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030002859A (ko) * | 2001-06-30 | 2003-01-09 | (주)브릿지커뮤니케이션 | 에듀게임 포키드 |
CN101183999A (zh) * | 2007-10-31 | 2008-05-21 | 北京航空航天大学 | 利用游戏数据的移动自组织网络场景构造方法 |
CN102819487A (zh) * | 2011-06-10 | 2012-12-12 | 腾讯科技(深圳)有限公司 | 对网络游戏进行测试的方法和装置 |
CN102819486A (zh) * | 2011-06-09 | 2012-12-12 | 腾讯科技(深圳)有限公司 | 一种网络产品自动化测试系统和测试方法 |
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030002859A (ko) * | 2001-06-30 | 2003-01-09 | (주)브릿지커뮤니케이션 | 에듀게임 포키드 |
CN101183999A (zh) * | 2007-10-31 | 2008-05-21 | 北京航空航天大学 | 利用游戏数据的移动自组织网络场景构造方法 |
CN102819486A (zh) * | 2011-06-09 | 2012-12-12 | 腾讯科技(深圳)有限公司 | 一种网络产品自动化测试系统和测试方法 |
CN102819487A (zh) * | 2011-06-10 | 2012-12-12 | 腾讯科技(深圳)有限公司 | 对网络游戏进行测试的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11331580B2 (en) | System, method, program, machine-learning assisting device, and data structure for inspecting game program | |
CN104050076B (zh) | 移动终端上的应用软件测试方法、装置及系统 | |
CN108052451A (zh) | 测试方法、系统、测试服务器、测试终端及存储介质 | |
KR101593984B1 (ko) | 분산 테스트 시스템 및 방법, 분산 테스트 관제 시스템 및 방법, 분산 테스트 플랜 작성 장치 및 방법, 분산 테스트 에이전트 및 분산 테스트 플랜 실행 방법 | |
KR101196522B1 (ko) | 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법 | |
CN101882090B (zh) | 链接共享共同特质的软件用户的方法 | |
CN109586952A (zh) | 服务器扩容方法、装置 | |
Takala et al. | Survey of 3DUI applications and development challenges | |
CN106610897A (zh) | 一种游戏数值平衡的自动化测试方法和系统 | |
CN107170313A (zh) | 一种微信在线模拟考试装置及其方法 | |
Le et al. | Construction safety education model based on second life | |
Cho et al. | Scenario-based approach for blackbox load testing of online game servers | |
Schaefer et al. | Crushinator: A framework towards game-independent testing | |
CN107844486A (zh) | 一种用于客户端的分析网页问题的方法和系统 | |
CN103593294B (zh) | 网络游戏性能测试方法及系统 | |
KR20120060012A (ko) | 시나리오 기반 부하 테스트 장치 및 방법 | |
Cho et al. | Online game testing using scenario-based control of massive virtual users | |
CN106371990B (zh) | 一种交互式软件并发处理能力的测试方法及系统 | |
KR20130017386A (ko) | 게임 서버의 안정성 테스트 방법 및 장치 | |
Frank et al. | The statistics proxy server | |
CN103593294A (zh) | 网络游戏性能测试方法及系统 | |
Memar et al. | Gamifying information system testing–Qualitative validation through focus group discussion | |
CN107276852B (zh) | 一种数据安全检测方法及终端 | |
Matsubara et al. | Evaluation of metaverse server in a widely-distributed environment | |
CN110837464A (zh) | 测试例处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |