测试场景题
如何对吃鸡游戏进行压力测试
1.游戏服务器硬件 硬盘I/o、内存、CPU 2.网络压力 a.长连接 最大连接数、流量(内网、外网、进、出) b.长连接短周期(类似Http的TCP应用,这个比较特殊的一个需求,专门针对LoginAgent) 每秒建立的连接数、实际处理能力 3.数据库 每秒事务数、每秒锁等待数、平均延时(ms)、CPU暂用 4.多线程的最优线程数 数据库执行的多线程、多连接处理 二.Windows Server环境测试方式 1.服务器性能监测 使用Server自带的性能监测器设置各个进程的监测参数。Window的这个自动工具做的相当强大。大家自己摸一摸基本就会用了。每个参数都由详细的说明。 2.案例设计注意 a.对于数据库的性能测试上,现在由于所有的游戏服务器构架在DB前面都有一个实现DB缓冲功能的进程,以减少数据库频繁的读写操作。所以其实数据库的读是一个轻量级的数量;
而数据库的写操作是一个周期性能过程。案例设计一定要能够驱动这种周期性能过程。比如我们游戏的战斗,导致游戏玩家数据的改变,或驱动所有在线玩家数据的周期性存储。 b.选择具有代表性,并且最频繁的游戏操作。用于进行最高用户在线的各种性能指标采集。如,开枪、道具拾取、道具使用、移动、聊天 c.聊天性能测试 广播聊天是最为考验游戏信息发送能力的功能。通过进行全局广播的压力测试。我们可以获取服务器进程发送信息到客户端的最高承载量。进而可以对我们的各种广播功能进行一个预估和频率限制。 d.同屏玩家的移动测试 移动+广播。这两种信息,基本是网络游戏流量的70-80%左右。同屏玩家数量,将会增加各种数据的广播需求,非常影响游戏性能。所以同屏的移动测试也是广播测试的一个必要环节。
需要根据实际结果进行适当的优化。 e.大量玩家同时登录测试 玩家登录时,有大量的信息需要进行分配和初始化;同时也有大量的数据需要下传客户端。服务器需要进行大量的TCP连接建立。所以是一个比较关键的过程。这个测试案例是一个比较特殊,
但是运营是肯定会碰到的案例。 f.由于线程池处理事务,随着事务的时耗,存在一个最优线程数的问题。过多的线程反而会降低服务器效率 3.细节问题 a.进行测试需要仔细思考客户端性能影响服务器最后表现的可能性。比如 a1.模拟客户端的性能无法有效处理服务器返回信息,可能就导致服务器发送的信息缓存在服务器系统缓存,从而表现出服务器内存不断增加。表现为服务器发送能力不足,其实可能根本就是客户端的性能问题 a2.客户端性能问题,导致发起的请求数过少,从而导致单位时间内服务器处理的请求过少。表现为服务器性能不足,其实根本就是客户端的请求能力不足。 b.网络带宽导致最后表现不足 b1.确认服务器的各个网卡,以及相互的带宽。不然可能因为相互带宽,导致服务器对于客户端请求的处理延时。表现为服务器卡机 b2.客户端模拟多个玩家,比如1000个玩家。而客户端的网卡或者客户端与服务器之间的中转服务器带宽过小,导致服务器数据发送不出,内存不断增加。表现为服务器发送能力不足,其实是中间带宽问题。 c.debug i/o导致服务器性能下降 c1.进行性能测试,一定要取消debug用的同步的i/o.比如我们服务器的debuginternalLog.同步i/o是非常影响性能的,特别在压力测试下可能导致每秒上千上万甚至几十万次的执行。一处的文件写入操作就可以导致几十万次的处理能力变成几千次的处理能力。 c2.客户端避免进行阻塞操作导致模拟多用户性能下降,导致服务器表现性能下降 d.流量需要区分内网网 内、外网流量在游戏正式运行时是完全分开的。价格也是完全不同的。一个千M的外网是一个无法想象的运营成本,而kmbps/s现在已经是一个可以接受的代价。游戏进程需要进行不同网卡的配置和绑定。确定内外网流量。
如何对淘宝搜索框进行测试
一, 功能测试 1. 输入关键字,查看: 返回结果是否准确,返回的文本长度需限制 1.1输入可查到结果的正常关键字、词、语句,检索到的内容、链接正确性; 1.2输入不可查到结果的关键字、词、语句; 1.3输入一些特殊的内容,如空、特殊符、标点符、极限值等,可引入等价类划分的方法等; 2. 结果显示:标题,卖家,销售量,单行/多行,是否有图片 3. 结果排序:价格 销量 评价 综合 4.返回结果庞大时,限制第一页的现实量,需支持翻页 5. 多选项搜索:关键字 品牌 产地 价格区间 是否天猫 是否全国购 6. 是否支持模糊搜索,支持通配符的查询 7, 网速慢的情况下的搜索 8. 搜索结果为空的情况 9. 未登录情况和登录情况下的搜索(登录情况下 存储用户搜索的关键字/搜索习惯) 二.性能测试: 1压力测试:在不同发用户数压力下的表现(评价指标如响应时间等) 2负载测试:看极限能承载多大的用户量同时正常使用 3稳定性测试:常规压力下能保持多久持续稳定运行 4内存测试:有无内存泄漏现象 5大数据量测试:如模拟从庞大的海量数据中搜索结果、或搜索出海量的结果后列示出来,看表现如何等等。 三. 易用性:交互界面的设计是否便于、易于使用 1依据不同的查询结果会有相关的人性化提示,查不到时告知?查到时统计条数并告知?有疑似输入条件错误时提示可能正确的输入项等等处理; 2查询出的结果罗列有序,如按点击率或其他排序规则,确保每次查询出的结果位置按规则列示方便定位,显示字体、字号、色彩便于识别等等; 3标题查询、全文检索、模糊查询、容错查询、多关键字组织查询(空格间格开)等实用的检索方式是否正常? 4输入搜索条件的控件风格设计、位置摆放是否醒目便于使用者注意到,有否快照等快捷查看方式等人性化设计? 四. 兼容性 1WINDOWS/LINUX/UNIX等各类操作系统下及各版本条件下的应用 2IE/FIREFOX/GOOGLE/360/QQ等各类浏览器下及各版本条件下、各种显示分辨率条件下的应用 3SQL/ORACLE/DB2/MYSQL等各类数据库存储情况下的兼容性测试 4简体中文、繁体中文、英文等各类语种软件平台下的兼容性测试 5IPHONE/IPAD、安卓等各类移动应用平台下的兼容性测试 6与各相关的监控程序的兼容性测试,如输入法、杀毒、监控、防火墙等工具同时使用 五. 安全性 1被删除、加密、授权的数据,不允许被SQL注入等攻击方式查出来的,是否有安全控制设计; 2录入一些数据库查询的保留字符,如单引号、%等等,造成查询SQL拼接出的语句产生漏洞,如可以查出所有数据等等,这方面要有一些黑客攻击的思想并引入一些工具和技术,如爬网等。 3通过白盒测试技术,检查一下在程序设计上是否存在安全方面的隐患; 4对涉及国家安全、法律禁止的内容是否进行了相关的过滤和控制;
账户登录:
一、功能测试 正常 输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。 登录成功后能否能否跳转到正确的页面 记住用户名的功能 密码是否非明文显示显示,使用星号圆点等符号代替。 牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使 用者),刷新或换一个按钮是否好用 登录页面中的注册、忘记密码,登出用另一帐号登陆等链接是否正确 输入密码的时候,大写键盘开启的时候要有提示信息。 异常: 输入错误的用户名或者密码,验证登录会失败,并且提示相应的错误信息。 登陆失败后,不能记录密码的功能 用户名和密码,如果太短或者太长,应该怎么处理 用户名和密码,中有特殊字符(比如空格),和其他非英文的情况 什么都不输入,点击提交按钮,检查提示信息。 二、界面测试 1.布局是否合理,testbox和按钮是否整齐。 2.testbox和按钮的长度,高度是否符合要求。 3. 界面的设计风格是否与UI的设计风格统一。 4. 界面中的文字简洁易懂,没有错别字。 三、性能测试 1.打开登录页面,需要的时间是否在需求要求的时间内。 2.输入正确的用户名和密码后,检查登录成功跳转到新页面的时间是否在需求要求的时间内。 3.模拟大量用户同时登陆,检查一定压力下能否正常登陆跳转。
4.在不同网络(2G/3G/4G/5G)情况下,登录的响应时间,在离线情况下是否支持登录。 四、安全性测试 1.登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)。 2.用户名和密码是否通过加密的方式,发送给Web服务器。 3.用户名和密码的验证,应该是用服务器端验证, 而不能单单是在客户端用javascript 验证。 4.用户名和密码的输入框,应该屏蔽SQL注入攻击。 5.用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击)。 6.防止暴力破解,检测是否有错误登陆的次数限制 7.是否支持多用户在同一机器上登录。 8.同一用户能否在多台机器上登录。 五、可用性测试 1. 是否可以全用键盘操作,是否有快捷键。 2. 输入用户名,密码后按回车,是否可以登陆。 3. 输入框能否可以以Tab键切换。
4. 密码和用户名是否可以粘贴复制。 六、兼容性测试 1.不同浏览器下能否显示正常且功能正常(IE,6,7,8,9, Firefox, Chrome, Safari,等)。 2.同种浏览器不同版本下能否显示正常且功能正常。 2.不同的平台是否能正常工作,比如Windows, Mac。 3.移动设备上是否正常工作,比如Iphone, Andriod。 4.不同的分辨率下显示是否正常。 5. 不同语言环境下,页面的显示是否正确
七、场景交互
1.来电话了
2.正在播放音乐
3.前后台的切换