网络游戏性能测试的几点想法

进入游戏行业也有一段时间了,在日常的工作中对游戏的性能测试也产生了一些想法,因此写出来与大家讨论讨论。

  网络游戏行业现在越做越大,面也越来越广了,依我的观点主要分为以下几个方面:

  1、传统的c/s架构的网络游戏;

  2、现在越来越风靡的b/s架构的网络游戏;

  3、越来越多的wap网络游戏

  那么我接下来就上面所说的3种网络游戏的性能测试怎么去做,发表一下自己的想法。

  第一种 传统的c/s架构的网络游戏

  这种网络游戏历史最悠久,也是目前最主流的网络游戏类型。这类游戏由需要用户下载客户端,然后通过客户端来访问服务器进行登录和游戏。

  这类游戏的性能测试方法大体有三种:

  一目前较常规的做法就是由自主研发一个机器人程序,模拟玩家登陆与游戏。这种方法的好处一是操作方便,对执行性能测试的人员无要求,二是能够较 真实的模拟出玩家的部分操作。但是缺点也不少,如对开发人员要求较高,因为不仅需要模拟用户访问服务器,还需要收集多种数据,并且将数据进行实时计算等, 成本较大,而且也不易维护。除此之外,机器人发生问题的时候,维护起来也不够方便。在复杂架构下不利于判断瓶颈所在位置。最重要的是一旦机器人开发进度拖 迟或者出现致命bug,性能测试将无法进行。

  二使用现成的性能测试工具来进行性能测试。可以使用工具来模拟用户与服务器交互的底层协议来进行测试。这种方法的优点是灵活方便、易于维护,开 发成本小。增加删除性能点及其容易,发生问题也能立即维护。开发成本相对于机器人来说减少很多,并可以较容易的判断性能瓶颈所在的位置。这种方式的缺点也 有不少,如对性能测试人员的要求比较高,需要根据用例来编写模拟用户与服务器之间的协议交互脚本。对于模拟真实性方面也比机器人程序差些。

  三使用最广泛,且与上面两条不冲突,那就是进行封测、内测、公测等开放性测试方法。这种方法是最真实的啦:)。让广大的玩家在测试服务器中进行游戏,帮助游戏公司找到游戏中的bug的同时,也对服务器的压力进行的真实的测试。

  第二种 b/s架构的网游

  b/s架构的网游现在越来越流行,现在越来越多的人喜欢上了这种类型的网游。它没有传统的c/s架构的网游那种炫目的效果、唯美的画面,也没有 传统网游那种直观的人物动作,但是却吸引了越来越多的上班族去玩它。因为它有着传统的c/s架构的网游所没有的优势,那就是方便,简单,要求低。只要可以 上网,只要有浏览器,就可以进行游戏。无需下载客户端,无需担心机器配置不够,也无需长时间去投入,就可以享受到网游的乐趣。

  这类游戏的性能测试方法大体有两种:

  一、使用工具来模拟用户访问,这个和其他的b/s架构的软件产品一样。通过各种工具,各种协议来模拟用户访问服务器,与服务器进行交互。

  二、和传统的c/s架构的网游一样,它也有封测、内测、公测等活动,让广大的玩家为游戏公司进行性能测试。

  第三种 wap网络游戏

  wap网游现在也是越来越多了。这类游戏的性能测试方法大体有两种:

  一 使用模拟器在电脑上模拟wap环境,然后使用工具来进行性能测试。使用的协议可以是wap,也可以是soap等其他协议。

  二 与其他两种网游一样,都少不了开发性测试这个环节。

  以上就是我这些日子来对网游性能测试的想法,希望对大家有用。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mongodb java报授权,mongoDB 3.0用户创建与授权

选择数据库 use admin添加用户:db.createUser({user: "admin",pwd: "12345678",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})此命令创建的用户只有管理用户的权限,并没有操作数据库的权限。查看…

交换排序-经典的快速排序算法总结

时间复杂度,平均O(nlogn),最坏O(n); 不稳定的算法 1、算法思想 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。…

c语言数组问题解析

#import <Foundation/Foundation.h>#define COUNT 10int main(int argc, const char * argv[]){//1、随机产生20个[10 , 50]的正整数存到数组中&#xff0c;并求数组中的所有元素最大值、最小值、平均值以及各元素之和。第二大值。// int max 0, min 0, sum 0, sec…

指针学习2

主要是指针数组、数组指针、函数指针的学习&#xff0c;以及二重指针、二维数组的学习。 一、指针数组与数组指针 1、概念 指针数组的实质是一个数组&#xff0c;这个数组中存储的内容全部是指针变量。数组指针的实质是一个指针&#xff0c;这个指针指向的是一个数组。2、分析…

php excel 分页,excel分页线怎么增加

增加excel分页线的方法&#xff1a;首先依次点击“工作簿视图-分页预览”&#xff1b;然后点击要在其下方插入分页符的这一行&#xff1b;最后在“页面布局”选项卡上的“页面设置”组中&#xff0c;单击“分隔符”即可。本文操作环境&#xff1a;Windows7系统&#xff0c;Micr…

C# 中的委托和事件

PDF 浏览&#xff1a;http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdf文中代码在VS2005下通过&#xff0c;由于VS2003(.Net Framework 1.1)不支持隐式的委托变量&#xff0c;所以如果在一个接受委托类型的位置直接赋予方法名&#xff0c;在VS2003下会报…

DEBUG、void、NULL、C库和API、临时匿名变量、main函数

一、程序调试的debug宏 1、程序调试的常见方案 单步调试、裸机LED调试、打印信息、log文件 利用调试器进行单步调试&#xff08;譬如IDE中&#xff0c;Jlink&#xff09;适用于新手&#xff0c;最大的好处就是直观&#xff0c;能够帮助找到问题。缺点是限制性大、速度慢。裸机…

php7 有ext skel吗,PHP扩展开发系列02 - 老司机起步之函数

上一篇扩展开发引导文章中。创建了编写扩展的三个基本文件。或许你会有个疑问PHP没有类似的自动生成项目框架的工具吗&#xff1f; 当然有。这篇文章就开始介绍使用 "php-ext-cli" 工具来生成扩展项目文件注意这里的 "php-ext-cli" 本身没有这玩意&#xf…

php 数据类型转换与比较

<?php define("PI", 3.1415926); echo PI."<br>"; //定义一个常量 define("GREETING","Hello world!");echo constant("GREETING")."<br>"; $a 10; $b "10a"; echo (string)$a $b; …

(转载)说说char

char一直都在使用并且大量的使用&#xff0c;但是&#xff0c;大部分都是在单一平台上&#xff0c;那样没有太多的问题&#xff0c;在windows上大量直接使用wchar_t来解决中文的问题。并且在使用跨平台时也大多直接使用了Qt的QString来节省了很多的麻烦&#xff0c;但是现在项目…

字符串类型、结构体、共用体、枚举、container宏、内存来源

一、C语言的字符串类型 1、C语言没有原生字符串类型 很多高级语言像java、C#等就有字符串类型&#xff0c;有个String来表示字符串&#xff0c;用法和int这些很像&#xff0c;可以String s1 "linux";来定义字符串类型的变量。C语言没有String类型&#xff0c;C语言…

WPF 正確理解ContentPresenter

2019独角兽企业重金招聘Python工程师标准>>> 我們先由下圖來看類層次,可知ContentControl繼承Control,ContentPresenter繼承FrameworkElement(Control也繼承FrameworkElement); 同樣的,ItemsControl繼承Control,ItemsPresenter繼承FrameworkElement. 在Control類並…

java 数据网格,easyui数据网格

easyui中的数据网格应用1.页面代码&#xff1a;class"java" name"code">String path request.getContextPath();String basePath request.getScheme()"://"request.getServerName()":"request.getServerPort()path"/";…

存储类、作用域、生命周期、链接属性

以下内容源于朱有鹏嵌入式课程的学习&#xff0c;如有侵权&#xff0c;请告知删除。 补充&#xff1a;https://blog.csdn.net/oqqHuTu12345678/article/details/71214255 一、概念集合 1、存储类 &#xff08;1&#xff09;存储类就是存储类型&#xff0c;也就是描述C语言变…

java动态交叉表,SqlServer如何生成动态交叉表查询

为了说明问题&#xff0c;我们用SqlServer自带的事例数据库(Northwind)来进行验证&#xff0c;所有的例子请放到Northwind中运行&#xff0c;我可能会省略Use语句&#xff0c;所引用的表&#xff0c;都是Northwind中的&#xff0c;下面我就不再说明了这里指的交叉表&#xff0c…

Canvas Clock

这两天在看html5的canvas,实现了上面那个东西 需要注意的地方&#xff1a; 1.canvas的sava()和restore()理解和使用 2.canvas的translate scale rotate ..的使用&#xff0c;每个变化都应该清楚圆心和角度..看&#xff1a;http://blog.sina.com.cn/s/blog_8fab526c01015tqs.htm…

CentOS 6.3 下用ntfs-3g挂载Windows NTFS分区

2019独角兽企业重金招聘Python工程师标准>>> 默认情况下&#xff0c;CentOS 6.3不支持Widows NTFS硬盘分区读写&#xff0c;要想把NTFS格式的磁盘挂载到CentOS 6.3下面需要安装第三方的插件ntfs-3g&#xff0c;这里我们采用编译安装插件。 1、安装编译器&#xff0c…

宏定义与预处理、函数和函数库

以下内容源于朱有鹏嵌入式课程的学习&#xff0c;如有侵权&#xff0c;请告知删除。 一、C语言预处理理论 1、由源码到可执行程序的过程 源码.c->(编译)->elf可执行程序源码.c->(编译)->目标文件.o->(链接)->elf可执行程序源码.c->(编译)->汇编文件.S…

PictureBox

代码添加图片&#xff1a; pictureBox1.Image Image.FromFile("F:\360wallpaper_dt.jpg"); http://msdn.microsoft.com/query/dev10.query?appIdDev10IDEF1&lZH-CN&kk(SYSTEM.WINDOWS.FORMS.PICTUREBOX);k(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERS…

C++的const修饰

2019独角兽企业重金招聘Python工程师标准>>> C的const修饰 ‍const的两个用途‍ &#xff08;1&#xff09;可以定义 const 常量 &#xff08;2&#xff09;const 可以修饰函数的参数、返回值. const的好处 &#xff08;1&#xff09;便于进行类型检查&#xff0c;…