CN103593294A - 网络游戏性能测试方法及*** - Google Patents
网络游戏性能测试方法及*** Download PDFInfo
- Publication number
- CN103593294A CN103593294A CN201310595306.1A CN201310595306A CN103593294A CN 103593294 A CN103593294 A CN 103593294A CN 201310595306 A CN201310595306 A CN 201310595306A CN 103593294 A CN103593294 A CN 103593294A
- Authority
- CN
- China
- Prior art keywords
- game
- test
- role
- script
- performance
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
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 (6)
1.一种网络游戏性能测试方法,其特征在于,包括:
S101、采用自动化测试工具录制获取网络游戏完整运行后的游戏数据和操作脚本,根据角色操作类型拆分操作脚本生成测试脚本,对测试脚本进行处理并生成测试脚本集;
S102、采用自动化测试工具设置模拟游戏角色及个数,连接测试脚本集和游戏服务器,根据预先设置的模拟游戏角色以及角色交互规则调用相应的测试脚本,并运行测试脚本以模拟角色间的交互操作;
S103、采用自动化测试工具监控游戏服务器的性能变化、收集测试脚本运行结果并输出不同并发游戏用户条件下的初始性能测试数据,所述初始性能测试数据包含操作响应时间、吞吐量、每秒操作数、游戏服务器CPU以及内存信息;
S104、将所述初始性能测试数据与测试前协商制定的关键性能指标进行对比分析,评估该游戏***可支持的用户级别以及在不同用户级别下对应的***性能,并根据所述不同用户级别下对应的***性能输出性能测试报告。
2.根据权利要求1所述的一种网络游戏性能测试方法,其特征在于,所述步骤S101具体包括如下步骤:
S1011、通过自动化测试工具启动并调用游戏客户端进行登录操作;
S1012、通过自动化测试工具调用登陆成功的游戏客户端和游戏服务器进行游戏交互操作,录制获取网络游戏完整运行后的游戏数据和操作脚本;
S1013、对录制的操作脚本进行参数化:把不同请求中和游戏角色相关信息分别用参数替换,并将参数值存入参数文件中,所述参数包括游戏角色账号、角色操作类型、角色操作信息;
S1014、对录制的操作脚本进行配置,所述配置包含加入操作间隔时间、加入集合点、以及在每个交互操作加入检查点;
S1015、按角色操作类型把录制的操作脚本进行拆分,使每个游戏角色账号操作的游戏角色的交互操作形成一个单独的测试脚本;
S1016、为每个测试脚本打上一个与角色操作类型唯一对应的操作标识ID,然后汇总测试脚本生成测试脚本集。
3.根据权利要求2所述的一种网络游戏性能测试方法,其特征在于,所述步骤S102包括如下步骤:
S1021、通过自动化测试工具根据参数文件设置参与测试的游戏角色账号、模拟游戏角色个数和测试持续时间;
S1022、通过自动化测试工具调用与游戏用户账号相应的登录脚本,监控游戏服务器返回登录成功报文,使所有的测试脚本与游戏服务器建立TCP连接,然后进入步骤S1023;
S1023、发送请求报文至游戏服务器,监控游戏服务器返回的交互信息报文,按数据包大小字段拆分交互信息报文,分别提取操作类型和消息元素,判断提取的操作类型和消息元素与预先设置的角色交互规则中的操作类型和操作结果状态字段是否匹配,若是,执行步骤S1024;
S1024、把游戏服务器返回的交互信息报文的全部消息元素存放在角色交互规则的角色操作信息字段中,并通知自动化测试工具从测试脚本集中依次调用与该角色交互规则中操作标识ID对应的测试脚本。
4.一种网络游戏性能测试***,其特征在于,包括测试计算机、游戏服务器、游戏客户端,所述测试计算机包括自动化测试工具、测试脚本集生成模块、运行模块、实时监控模块以及测试结果生成模块;
所述测试脚本集生成模块用于采用自动化测试工具录制获取网络游戏完整运行后的游戏数据和操作脚本,根据角色操作类型拆分操作脚本生成测试脚本,对测试脚本进行处理并生成测试脚本集;
所述运行模块用于采用自动化测试工具设置模拟游戏角色及个数,连接测试脚本集和游戏服务器,根据预先设置的模拟游戏角色以及角色交互规则调用相应的测试脚本,并运行测试脚本以模拟角色间的交互操作;
所述实时监控模块用于采用自动化测试工具监控游戏服务器的性能变化、收集测试脚本运行结果并输出不同并发游戏用户条件下的初始性能测试数据,所述初始性能测试数据包含操作响应时间、吞吐量、每秒操作数、游戏服务器CPU以及内存信息;
所述测试结果生成模块用于将所述初始性能测试数据与测试前协商制定的关键性能指标进行对比分析,评估该游戏***可支持的用户级别以及在不同用户级别下对应的***性能,并根据所述不同用户级别下对应的***性能输出性能测试报告。
5.根据权利要求4所述的一种网络游戏性能测试***,其特征在于,所述测试脚本集生成模块包括:
登录模块,用于通过自动化测试工具启动并调用游戏客户端进行登录操作;
录制模块,用于通过自动化测试工具调用登陆成功的游戏客户端和游戏服务器进行游戏交互操作,录制获取网络游戏完整运行后的游戏数据和操作脚本;
脚本参数化模块,用于对录制的操作脚本进行参数化:把不同请求中和游戏角色相关信息分别用参数替换,并将参数值存入参数文件中,所述参数包括游戏角色账号、角色操作类型、角色操作信息等;
脚本配置模块,用于对录制的操作脚本进行配置,所述配置包含加入操作间隔时间、加入集合点、以及在每个交互操作加入检查点;
脚本拆分模块,用于按角色操作类型把录制的操作脚本进行拆分,使每个游戏角色账号操作的游戏角色的交互操作形成一个单独的测试脚本;以及
脚本集生成模块,用于为每个测试脚本打上一个与角色操作类型唯一对应的操作标识ID,然后汇总测试脚本生成测试脚本集。
6.根据权利要求5述的一种网络游戏性能测试***,其特征在于,所述运行模块包括:
设置模块,用于通过自动化测试工具根据参数文件设置参与测试的游戏角色账号、模拟游戏角色个数和测试持续时间;
连接模块,用于通过自动化测试工具调用与游戏角色账号相应的登录脚本,监控游戏服务器返回登录成功报文,使所有的测试脚本与游戏服务器建立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 true CN103593294A (zh) | 2014-02-19 |
CN103593294B CN103593294B (zh) | 2016-11-30 |
Family
ID=
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182249A (zh) * | 2014-08-04 | 2014-12-03 | 苏州蜗牛数字科技股份有限公司 | 一种自动执行程序的方法 |
CN104572444A (zh) * | 2014-12-10 | 2015-04-29 | 网易(杭州)网络有限公司 | 一种游戏性能云测试平台及其测试方法 |
CN104699617A (zh) * | 2015-03-31 | 2015-06-10 | 成都优聚软件有限责任公司 | 一种游戏用自动化测试方法 |
CN104965778A (zh) * | 2015-04-28 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 游戏测试方法及装置 |
CN104978261A (zh) * | 2014-04-03 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法、装置及*** |
CN105262608A (zh) * | 2015-09-01 | 2016-01-20 | 北京百度网讯科技有限公司 | 用于网络服务的监控方法和装置 |
CN105260306A (zh) * | 2015-10-20 | 2016-01-20 | 网易(杭州)网络有限公司 | 一种游戏程序中美术资源的性能检测方法及装置 |
CN105311827A (zh) * | 2014-07-31 | 2016-02-10 | 株式会社万代南梦宫娱乐 | 游戏*** |
CN105704166A (zh) * | 2016-04-27 | 2016-06-22 | 网易(杭州)网络有限公司 | 机器人***及其实现方法、客户端、服务器以及游戏*** |
CN105740154A (zh) * | 2016-03-03 | 2016-07-06 | 北京白鹭时代信息技术有限公司 | 一种网页游戏测试脚本生成方法及装置 |
CN105808227A (zh) * | 2014-12-31 | 2016-07-27 | 北京畅游天下网络技术有限公司 | 一种美术资源文件检测方法和装置 |
CN105959177A (zh) * | 2016-04-26 | 2016-09-21 | 网易(杭州)网络有限公司 | 一种游戏服务器压力测试脚本的生成方法和装置 |
CN106201808A (zh) * | 2015-05-04 | 2016-12-07 | 北京畅游天下网络技术有限公司 | 一种服务器端的自动化接口测试方法及*** |
CN106201854A (zh) * | 2015-05-04 | 2016-12-07 | 北京畅游天下网络技术有限公司 | 一种基于套接字的服务器负载测试方法及*** |
CN106339319A (zh) * | 2016-08-30 | 2017-01-18 | 福建天晴数码有限公司 | 一种交互式软件的测试方法及*** |
CN106874197A (zh) * | 2017-02-08 | 2017-06-20 | 网易(杭州)网络有限公司 | 测试方法及装置 |
CN107362537A (zh) * | 2017-07-03 | 2017-11-21 | 珠海金山网络游戏科技有限公司 | 一种限定角色账号登录服务器的方法及装置 |
CN107368411A (zh) * | 2017-06-30 | 2017-11-21 | 北京小米移动软件有限公司 | 测试方法、装置及*** |
CN107422847A (zh) * | 2017-06-16 | 2017-12-01 | 福建天晴数码有限公司 | 一种远程测试虚拟角色加速度值的方法及*** |
CN107422848A (zh) * | 2017-06-16 | 2017-12-01 | 福建天晴数码有限公司 | 一种测试虚拟角色加速度值的方法及*** |
CN107451061A (zh) * | 2017-08-03 | 2017-12-08 | 网易(杭州)网络有限公司 | 游戏测试方法、装置、存储介质、处理器和服务端 |
CN108923999A (zh) * | 2018-05-31 | 2018-11-30 | 苏州蜗牛数字科技股份有限公司 | 一种网游服务器性能自动化测试方法及*** |
CN109359003A (zh) * | 2018-10-29 | 2019-02-19 | 网易(杭州)网络有限公司 | 游戏服务器压力测试方法、装置及设备 |
CN109684196A (zh) * | 2018-11-01 | 2019-04-26 | 北京中清龙图网络技术有限公司 | 一种测试方法及装置 |
CN109840204A (zh) * | 2018-12-24 | 2019-06-04 | 苏州蜗牛数字科技股份有限公司 | 一种应用测试***与方法 |
WO2019104844A1 (zh) * | 2017-11-29 | 2019-06-06 | 平安科技(深圳)有限公司 | 货币基金***自动性能测试方法、装置、设备及存储介质 |
CN110034972A (zh) * | 2019-03-22 | 2019-07-19 | 深圳市腾讯信息技术有限公司 | 服务器压力测试方法和装置 |
CN110141864A (zh) * | 2019-04-30 | 2019-08-20 | 深圳市腾讯网域计算机网络有限公司 | 一种游戏自动测试方法、装置及终端 |
CN110474900A (zh) * | 2019-08-13 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种游戏协议测试方法及装置 |
CN111061631A (zh) * | 2019-11-29 | 2020-04-24 | 珠海金山网络游戏科技有限公司 | 移动终端游戏回测方法及*** |
CN111143214A (zh) * | 2019-12-26 | 2020-05-12 | 上海米哈游天命科技有限公司 | 一种游戏性能监控方法、装置、服务器及存储介质 |
CN111274151A (zh) * | 2020-02-10 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 一种游戏测试的方法、相关装置以及存储介质 |
CN111400184A (zh) * | 2020-03-17 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 游戏测试方法、装置、***、设备及云平台 |
CN111494960A (zh) * | 2019-01-31 | 2020-08-07 | 游戏橘子数位科技股份有限公司 | 克隆游戏账号建立方法及其*** |
CN113765862A (zh) * | 2020-06-05 | 2021-12-07 | 腾讯科技(成都)有限公司 | 游戏协议测试的方法、装置、设备及计算机可读存储介质 |
CN113806220A (zh) * | 2021-08-23 | 2021-12-17 | 北京天融信网络安全技术有限公司 | 一种测试脚本的执行方法、***、终端及存储介质 |
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 | 腾讯科技(深圳)有限公司 | 对网络游戏进行测试的方法和装置 |
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 | 腾讯科技(深圳)有限公司 | 对网络游戏进行测试的方法和装置 |
Cited By (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978261A (zh) * | 2014-04-03 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 应用程序的测试方法、装置及*** |
CN105311827B (zh) * | 2014-07-31 | 2019-11-29 | 株式会社万代南梦宫娱乐 | 游戏*** |
CN105311827A (zh) * | 2014-07-31 | 2016-02-10 | 株式会社万代南梦宫娱乐 | 游戏*** |
CN104182249A (zh) * | 2014-08-04 | 2014-12-03 | 苏州蜗牛数字科技股份有限公司 | 一种自动执行程序的方法 |
CN104572444B (zh) * | 2014-12-10 | 2018-07-03 | 网易(杭州)网络有限公司 | 一种游戏性能云测试平台及其测试方法 |
CN104572444A (zh) * | 2014-12-10 | 2015-04-29 | 网易(杭州)网络有限公司 | 一种游戏性能云测试平台及其测试方法 |
CN105808227A (zh) * | 2014-12-31 | 2016-07-27 | 北京畅游天下网络技术有限公司 | 一种美术资源文件检测方法和装置 |
CN104699617A (zh) * | 2015-03-31 | 2015-06-10 | 成都优聚软件有限责任公司 | 一种游戏用自动化测试方法 |
CN104965778A (zh) * | 2015-04-28 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 游戏测试方法及装置 |
CN104965778B (zh) * | 2015-04-28 | 2018-01-30 | 腾讯科技(深圳)有限公司 | 游戏测试方法及装置 |
CN106201854A (zh) * | 2015-05-04 | 2016-12-07 | 北京畅游天下网络技术有限公司 | 一种基于套接字的服务器负载测试方法及*** |
CN106201854B (zh) * | 2015-05-04 | 2019-02-12 | 北京畅游天下网络技术有限公司 | 一种基于套接字的服务器负载测试方法及*** |
CN106201808A (zh) * | 2015-05-04 | 2016-12-07 | 北京畅游天下网络技术有限公司 | 一种服务器端的自动化接口测试方法及*** |
CN105262608A (zh) * | 2015-09-01 | 2016-01-20 | 北京百度网讯科技有限公司 | 用于网络服务的监控方法和装置 |
CN105262608B (zh) * | 2015-09-01 | 2018-09-18 | 北京百度网讯科技有限公司 | 用于网络服务的监控方法和装置 |
CN105260306A (zh) * | 2015-10-20 | 2016-01-20 | 网易(杭州)网络有限公司 | 一种游戏程序中美术资源的性能检测方法及装置 |
CN105260306B (zh) * | 2015-10-20 | 2018-05-08 | 网易(杭州)网络有限公司 | 一种游戏程序中美术资源的性能检测方法及装置 |
CN105740154A (zh) * | 2016-03-03 | 2016-07-06 | 北京白鹭时代信息技术有限公司 | 一种网页游戏测试脚本生成方法及装置 |
CN105959177B (zh) * | 2016-04-26 | 2018-12-11 | 网易(杭州)网络有限公司 | 一种游戏服务器压力测试脚本的生成方法和装置 |
CN105959177A (zh) * | 2016-04-26 | 2016-09-21 | 网易(杭州)网络有限公司 | 一种游戏服务器压力测试脚本的生成方法和装置 |
CN105704166A (zh) * | 2016-04-27 | 2016-06-22 | 网易(杭州)网络有限公司 | 机器人***及其实现方法、客户端、服务器以及游戏*** |
CN105704166B (zh) * | 2016-04-27 | 2019-12-31 | 网易(杭州)网络有限公司 | 机器人***及其实现方法、客户端、服务器以及游戏*** |
CN106339319A (zh) * | 2016-08-30 | 2017-01-18 | 福建天晴数码有限公司 | 一种交互式软件的测试方法及*** |
CN106874197A (zh) * | 2017-02-08 | 2017-06-20 | 网易(杭州)网络有限公司 | 测试方法及装置 |
CN106874197B (zh) * | 2017-02-08 | 2020-05-05 | 网易(杭州)网络有限公司 | 测试方法及装置 |
CN107422848A (zh) * | 2017-06-16 | 2017-12-01 | 福建天晴数码有限公司 | 一种测试虚拟角色加速度值的方法及*** |
CN107422847B (zh) * | 2017-06-16 | 2020-04-17 | 福建天晴数码有限公司 | 一种远程测试虚拟角色加速度值的方法及*** |
CN107422847A (zh) * | 2017-06-16 | 2017-12-01 | 福建天晴数码有限公司 | 一种远程测试虚拟角色加速度值的方法及*** |
CN107368411A (zh) * | 2017-06-30 | 2017-11-21 | 北京小米移动软件有限公司 | 测试方法、装置及*** |
CN107362537A (zh) * | 2017-07-03 | 2017-11-21 | 珠海金山网络游戏科技有限公司 | 一种限定角色账号登录服务器的方法及装置 |
CN107451061A (zh) * | 2017-08-03 | 2017-12-08 | 网易(杭州)网络有限公司 | 游戏测试方法、装置、存储介质、处理器和服务端 |
WO2019104844A1 (zh) * | 2017-11-29 | 2019-06-06 | 平安科技(深圳)有限公司 | 货币基金***自动性能测试方法、装置、设备及存储介质 |
CN108923999A (zh) * | 2018-05-31 | 2018-11-30 | 苏州蜗牛数字科技股份有限公司 | 一种网游服务器性能自动化测试方法及*** |
CN109359003B (zh) * | 2018-10-29 | 2022-05-20 | 网易(杭州)网络有限公司 | 游戏服务器压力测试方法、装置及设备 |
CN109359003A (zh) * | 2018-10-29 | 2019-02-19 | 网易(杭州)网络有限公司 | 游戏服务器压力测试方法、装置及设备 |
CN109684196B (zh) * | 2018-11-01 | 2024-01-09 | 北京中清龙图网络技术有限公司 | 一种测试方法及装置 |
CN109684196A (zh) * | 2018-11-01 | 2019-04-26 | 北京中清龙图网络技术有限公司 | 一种测试方法及装置 |
CN109840204A (zh) * | 2018-12-24 | 2019-06-04 | 苏州蜗牛数字科技股份有限公司 | 一种应用测试***与方法 |
CN111494960B (zh) * | 2019-01-31 | 2023-06-27 | 游戏橘子数位科技股份有限公司 | 克隆游戏账号建立方法及其*** |
CN111494960A (zh) * | 2019-01-31 | 2020-08-07 | 游戏橘子数位科技股份有限公司 | 克隆游戏账号建立方法及其*** |
CN110034972A (zh) * | 2019-03-22 | 2019-07-19 | 深圳市腾讯信息技术有限公司 | 服务器压力测试方法和装置 |
CN110141864A (zh) * | 2019-04-30 | 2019-08-20 | 深圳市腾讯网域计算机网络有限公司 | 一种游戏自动测试方法、装置及终端 |
CN110474900A (zh) * | 2019-08-13 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种游戏协议测试方法及装置 |
CN110474900B (zh) * | 2019-08-13 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 一种游戏协议测试方法及装置 |
CN111061631A (zh) * | 2019-11-29 | 2020-04-24 | 珠海金山网络游戏科技有限公司 | 移动终端游戏回测方法及*** |
CN111143214A (zh) * | 2019-12-26 | 2020-05-12 | 上海米哈游天命科技有限公司 | 一种游戏性能监控方法、装置、服务器及存储介质 |
CN111274151A (zh) * | 2020-02-10 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 一种游戏测试的方法、相关装置以及存储介质 |
CN111400184A (zh) * | 2020-03-17 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 游戏测试方法、装置、***、设备及云平台 |
CN111400184B (zh) * | 2020-03-17 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 游戏测试方法、装置、***、设备及云平台 |
CN113765862B (zh) * | 2020-06-05 | 2024-02-09 | 腾讯科技(成都)有限公司 | 游戏协议测试的方法、装置、设备及计算机可读存储介质 |
CN113765862A (zh) * | 2020-06-05 | 2021-12-07 | 腾讯科技(成都)有限公司 | 游戏协议测试的方法、装置、设备及计算机可读存储介质 |
CN113806220A (zh) * | 2021-08-23 | 2021-12-17 | 北京天融信网络安全技术有限公司 | 一种测试脚本的执行方法、***、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103873321B (zh) | 基于分布式文件***的仿真分布式并行计算平台及方法 | |
US8762113B2 (en) | Method and apparatus for load testing online server systems | |
Serrano-Laguna et al. | Tracing a little for big improvements: Application of learning analytics and videogames for student assessment | |
KR101593984B1 (ko) | 분산 테스트 시스템 및 방법, 분산 테스트 관제 시스템 및 방법, 분산 테스트 플랜 작성 장치 및 방법, 분산 테스트 에이전트 및 분산 테스트 플랜 실행 방법 | |
CN112189188A (zh) | 检查游戏程序用的***、方法、程序、机器学习辅助装置和数据结构 | |
EP2902901A1 (en) | Development, compiling and debugging method and device for application | |
CN101882090B (zh) | 链接共享共同特质的软件用户的方法 | |
US20060046854A1 (en) | Method and apparatus for developing an electronic game using automatic user feedback | |
CN106249649A (zh) | 远程控制***及其方法 | |
CN108126339A (zh) | 一种智能麻将游戏装置、控制方法及*** | |
KR20120047013A (ko) | 스크립트를 이용한 온라인 게임 서버의 스트레스 테스트 시스템 및 그 방법 | |
CN105487965A (zh) | 一种通用的服务器压力测试方法及装置 | |
CN107256276A (zh) | 一种基于云平台的移动App内容安全获取方法及设备 | |
KR20120060012A (ko) | 시나리오 기반 부하 테스트 장치 및 방법 | |
KR20130017386A (ko) | 게임 서버의 안정성 테스트 방법 및 장치 | |
KR100599936B1 (ko) | 브이,이,엔,유,에스 시스템 | |
CN103593294A (zh) | 网络游戏性能测试方法及*** | |
Frank et al. | The statistics proxy server | |
CN103593294B (zh) | 网络游戏性能测试方法及*** | |
KR20110058497A (ko) | 온라인 게임에서 사용자 어뷰즈를 실시간 감시하는 방법과 그 시스템 | |
KR100895199B1 (ko) | 가상 공간에서의 캐릭터 이동 경로 설정 방법 및 시스템 | |
CN107276852B (zh) | 一种数据安全检测方法及终端 | |
KR101875428B1 (ko) | 인 클라이언트 서버를 이용한 온라인 게임 내 캐릭터의 위치정보 제공장치 및 그 방법 | |
KR101155255B1 (ko) | 온라인 게임 서비스에 있어서의 불량 유저 검출 시스템 및 그 방법 | |
CN104035761A (zh) | 占卜信息处理***、方法及计算机程序产品与云端服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |