群组技术交流活动---在线交流:性能测试、分析与优化

火龙果软件工程技术中心 报名咨询热线: 北京 010-62670835 上海 021-50800371 深圳 0755-88849686

活动简介:

通过在线的方式交流关于《性能测试、分析与调优 》的一些经验,并对先前发布的视频<<性能测试、分析与调优 >>进行答疑,答疑范围包括但不限于本视频,参与讨论者可以提出自己在“性能测试、分析与调优”中的相关问题。本次交流适用于一切对“性能测试、分析与调优”感兴趣的软件行业从业者。

请在讲座前首先通过 网上报名>>>
   此次讲座通过MSN群:test @uml.com.cn ,然后加入群组,加入方法“在MSN中作为联系人加”。

您可以先通过技术论坛说明感兴趣的议题和问题!

讲座内容

  • 有效捕获性能测试需求
  • 制定性能测试策略
  • 性能测试准备
  • 性能测试执行
  • 性能测试分析
  • 性能测试调优

讲座资料:

《性能测试、分析与调优 》讲座视频
《性能测试、分析与调优 》讲义

讲座安排

回答大家对视频<<性能测试、分析与调优 >>产生的问题,引申出一些相关的实践中的问题与解决办法,以及分享一些最佳实践。

讲座须知:

  • 主   讲: 田志
  • 在线讲座时间:2008-10-07,晚上 7:00-9:00
  • 报名方式:请在讲座前首先通过 网上报名>>>
  • 交流地点:MSN群:test@uml.com.cn ,请在讲座前加入群组。 您可以先通过技术论坛说明感兴趣的议题和问题!如有疑问请致电: (010)62670862

主讲简介:

田志,测试经理。

多年的移动与电信行业软件研发与测试经验,目前致力于软件测试工具的研发。对软件性能测试有丰富的经验,浓厚的兴趣。目前是OneSight,Vas,E_Test Suit测试工具的测试经理, E_Test Suit已经被Oracle收购,产品主要是做性能测试,自动化测试,测试管理。OneSight能够针对Web System内部及外部元件进行监控,在此架构下可以探测性能降低的原因,并可制订问题解决方案。Vas是全新的整套测试工具。


交流实录:

主持人 说: 大家好
主持人 说: 现在准备开始了
田志-Scott 说: 好的
田志-Scott 说: 大家都看过视频资料和PPT了吗
田志-Scott 说: 有哪些问题 可以一起讨论和交流一下
主持人 说: 欢迎在线的所有朋友参加我们火龙果软件在2008-10-7日举办的线上活动。
本次交流由UML软件工程组织联合火龙果软件推出,目的是为了让大家有一个交流的平台,能够和专家在线直接沟通,交流经验,共享知识,同时,也欢迎每个人把自己的经验在讲座中与参与者分享。
主持人 说: 此次交流采用在线文字聊天,目的是为了能够让更多地人看到具体的文字信息,相关讲义和视频:http://www.uml.org.cn/MyProcess/GuideView/xncsh924.asp
相关技术资源请访问:http://www.uml.org.cn/Test/test.asp#6
主持人 说: 今天活动的主题是《性能测试、分析与优化》。 主讲是田志老师。
主持人 说: 田志,测试经理。 多年的移动与电信行业软件研发与测试经验,目前致力于软件测试工具的研发。对软件性能测试有丰富的经验,浓厚的兴趣。目前是OneSight,Vas,E_Test Suit测试工具的测试经理, E_Test Suit已经被Oracle收购,产品主要是做性能测试,自动化测试,测试管理。OneSight能够针对Web System内部及外部元件进行监控,在此架构下可以探测性能降低的原因,并可制订问题解决方案。Vas是全新的整套测试工具。
guixinmin@163.com (E-mail Address Not Verified) 说: 好的!谢谢
田志-Scott 说: 大家好 我是田志
田志-Scott 说: 非常高兴和大家一起交流这个性能测试的课程
田志-Scott 说: 大家在看过视频资料和PPT后 有哪些问题
主持人 说: 欢迎田志老师,
主持人 说: 今天的交流共设了三个部分
主持人 说: 1.问题收集,请参加者提出感兴趣的问题 2.围绕问题的讲解和交流 3.发散讨论
主持人 说: 各位兄弟姐妹们,有问题的可以准备一下
主持人 说: 提提
田志-Scott 说: 对性能测试 有哪些问题
庄崇田 说: 我向田志先生提个性能测试方面的问题。
田志-Scott 说: 好
田志-Scott 说: 这位同学 请问
田志-Scott 说: 这位同学的问题是什么
主持人 说: 大家有什么问题么,可以提提
主持人 说: 或者田老师说一下性能测试的关键问题都可能有哪些
主持人 说: 呵呵
主持人 说: 范围比较大,可以引导一下
庄崇田 说: 关于“严格并发数”的界定,目前很多测试领域的朋友都有不同看法,举个简单例子,实际需求有1000人 在早上8点左右 前后15分钟内,登录某个办公系统,现在就想用lr测试一下 登录的并发性,这个集合点严格并发到底设置多少合适呢,或者说遵循什么比例
田志-Scott 说: 这位庄同学 问有关于并发数的 界定问题
田志-Scott 说: 作过性能测试的人员 都知道 用户并发数 是衡量系统性能重要的指标
庄崇田 说: 是地是地
田志-Scott 说: 界定用户并发数的标准 要根据实际业务的需求
庄崇田 说: 实际需求有1000人 在早上8点左右 前后15分钟内,登录某个办公系统,现在就想用lr测试一下 登录的并发性,这个集合点严格并发到底设置多少合适呢,或者说遵循什么比例 田志-Scott 说: 比如 1000人的用户使用 一个软件系统 但是不是说 1000个人 并发使用 需要根据业务高峰期的 报表 或者日志
庄崇田 说: 假如是个新项目上线前的 性能测试呢 没有可参照的历史数据日志啊
田志-Scott 说: 根据 系统日志分析 高峰期 有多少人 同时并发登陆系统 1000人 并发数可能是100 也可能是200
田志-Scott 说: 其实这位同学问的问题非常好
田志-Scott 说: 你的这个问题属于性能测试需求 不精确
Colin 说:感谢田老师的解答,我也有个问题
田志-Scott 说: 我们需要 通过 负载测试 并且采用用户数逐渐递增的场景 来找到 系统瓶颈的怪诞
Colin 说: 关于aix内存分配机制的问题
田志-Scott 说: 拐点
Colin 说: 我们知道lr对于unix没有提供直接的内存指标
田志-Scott 说: Unix操作系统 内存分配 是个比较麻烦的工作
Colin 说: 那么如何分析aix的内存使用情况呢
guixinmin@163.com (E-mail Address Not Verified) 说: aix指的是什么
Colin 说: 操作系统
田志-Scott 说: 我们都知道 unix 自带非常丰富的监控工具
田志-Scott 说: 无论是内存监控 CPU 监控 还是网络监控等
田志-Scott 说: 比如Aix 系统 它有常用的内存分析方法
Colin 说:
田志-Scott 说: vmtune chps/mkps / fdpr/ chdev
田志-Scott 说: 是常用aix内存监控 调试工具
校長 说: 你好,我的问题是如果在压力测试的时候 lr 出现了 27791 结果服务器的CPU45%左右  是什么问题?
田志-Scott 说: AIX内存的管理称为虚拟内存管理(VMM,Virtual Memory Management)
Colin 说:
田志-Scott 说: 由物理内存和 硬盘交换区
田志-Scott 说: 组成
guixinmin@163.com (E-mail Address Not Verified) 说: 谢谢
Colin 说:
田志-Scott 说: 然后我们弄清内存有什么组成 然后 通过性能测试调试分析工具
Colin 说: 出页率、入叶率
田志-Scott 说: 管理实存帧的分配和解决页面命中失败的问题(即程序访问的数据不在实存或虚存中的情况)
Colin 说: lr有出页率、入叶率的指标
Colin 说: 但我不知道出页率、入页率多少才算正常
tao Chinese 说: 我有个问题:如何根据业务场景进行性能需求分析
田志-Scott 说: 其实好多UNIX 操作系统的监控和优化 我们一般都通过 专用的工具进行分析
Colin 说: 有没有好的资料推荐一下
田志-Scott 说: LR 只是工具 操作起来 可能方便而已 但是不是万能的
田志-Scott 说: HP UNix优化 指南
田志-Scott 说: 这本书 也不错的
校長 说: 嗯  这一点 我知道 
Colin 说: 谢谢
田志-Scott 说: 不过不同的unix可能指标和方法 略有不同
Colin 说:
校長 说: 如果真有这种问题 要怎么去解决他呢?
田志-Scott 说: 2个方式: 如果性能测试人员非常精通 UNIX 优化的基本方法和步骤 可以直接解决
校長 说: NO
田志-Scott 说: 第2种 如果测试人员 对这里领域知识不了解 可以请 专门的UNIX 管理员
田志-Scott 说: 一起分析解决
田志-Scott 说: 大家觉得那个方式好呢 呵呵
校長 说: 我的问题是 如果在给个网站做压力测试的时候 lr 总是出现27791  我要怎么做下去  
田志-Scott 说: LR的错误
校長 说: lr 的错误?
田志-Scott 说: Action.c: Error -26377: No match found for the requested parameter "WCSParam_Diff1". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size
田志-Scott 说: 是LR 一种类型的错误
田志-Scott 说: 我们首先 考虑
Colin 说: 是关联错误吧
田志-Scott 说: 类似这种错误 我们首先 考虑脚本
校長 说:
Colin 说: 我们刚刚遇到
Colin 说: 多数情况是关联边界没设对
田志-Scott 说: 我们要保证测试脚本 在 调试过程中 能顺利通过 才可以跑场景
校長 说: 不是关连错误吧 
田志-Scott 说: use web_set_max_html_param_len to increase the parameter size
田志-Scott 说: 用这个函数 可以设置参数长度
荧火虫 说: 手动用一个用户登录一下,看是否没有退出,用户没有注销。刚遇到的
田志-Scott 说: 其实LR的帮助 系统 非常的强大
田志-Scott 说: 大家可以 仔细看看 呵呵 一般问题都可以解决的
校長 说: 那我现在做 网站登陆入口的并发 
tao Chinese 说: 我有个问题:如何根据业务场景进行性能需求分析
校長 说: 并发数量 设置在 120人
田志-Scott 说: tao Chinese 说 (7:26 PM): 我有个问题:如何根据业务场景进行性能需求分析
田志-Scott 说: 我先回到这个问题
田志-Scott 说: 性能测试需求分析的获得
tao Chinese人 说: hao thx
田志-Scott 说: 我们在做性能测试之前 首先 要非常明确 性能测试需求
Colin 说: 这个问题请参看市面上的书籍吧
田志-Scott 说: 如果性能测试需求是不正确的 那么我们的脚本调试 运行场景和 最后结果分析 都是无效的
tao Chinese 说: 性能测试需求具体怎么描述
tao Chinese 说: 有规范的实用的形式么
田志-Scott 说: 主要指标
响应时间(Response Time)
并发用户数(The Number of Concurrent Users)
吞吐量(Throughput)
每秒交易数(Transaction per Second)
资源利用率(Hardware/Software Resource Utilization)
可靠性或稳定性(Reliability or Stability)
可伸缩性(Scalability)
可恢复性(Recoverability)
田志-Scott 说: 首先 我们要清楚 性能测试 最主要的描述指标
tao Chinese 说: 有的时候,我们面对的一个应用有很多业务场景,我怎么识别性能瓶颈的场景呢
田志-Scott 说: 我们在设置性能测试场景的 时候 首先
tao Chinese 说: 不是那种大数据量查询,或者复杂事务的简单经验就可以知道的
田志-Scott 说: 要清楚 我们进行性能测试的类型
tao Chinese 说: 有没有系统的方法
田志-Scott 说: 性能测试类型 大家是否仔细研究过
tao Chinese 说: 我没有
田志-Scott 说: 每种不同的性能测试类型 就是针对 不同的 性能测试场景
tao Chinese 说: 呵呵,别人不知道了
庄崇田 说: 刚才“校长”提到的 27791 问题 应该就是系统Tomcat配置有问题
田志-Scott 说: 性能测试类型
性能测试 (Performance Testing)
负载测试 (Load Testing)
压力测试 (Stress Testing)
配置测试 (Configuration Testing)
并发测试 (Concurrency Testing)
可靠性测试 (Reliability Testing)
失效恢复测试 (Failover Testing)
田志-Scott 说: 性能测试 这么多类型 每种类型 针对性都是不同的
tao Chinese 说: 这个倒是知道些
田志-Scott 说: 我们就是要根据性能测试需求 确定性能测试指标 然后确定性能测试类型 之后 形成 一个比较规范的文档
主持人 说: 问题是如何识别性能问题,有的时候设计可能就是不合理的,我们怎么发现,
田志-Scott 说: 我给大家个例子
tao Chinese 说: 登陆都知道会有瓶颈,问题是不使这种常见的问题呢
Colin 说: 请问田老师,对于java应用服务器内存泄漏分析及调优的问题
田志-Scott 说: tao Chinese 说 (7:31 PM): 登陆都知道会有瓶颈,问题是不使这种常见的问题呢
田志-Scott 说: 我们确定性能测试需求 最重要的一点 就是要明确 性能测试关键业务
田志-Scott 说: 大家都知道 系统很大 不可能对每种业务进行性能测试
田志-Scott 说: 那是不合理的 是不是
田志-Scott 说: 我们要根据 软件系统中 最常用 最重要的 业务 进行性能测试 比如
田志-Scott 说: 移动的BOSS系统
tao Chinese 说: 是啊
tao Chinese 说: 我们以前一个系统,性能测试通过了,业务运行中出现了没有想到的问题
田志-Scott 说: 登陆 只是其中一个业务 还有 开户 缴费 综合信息查询 套餐变更
tao Chinese 说: 这个应该是性能测试需求的问题,怎么不漏掉呢
田志-Scott 说: 对的
田志-Scott 说: 就是性能测试需求 没有分析到位
田志-Scott 说: 所以 我们首先要强调 性能测试需求分析
田志-Scott 说: 捕获性能测试需求的一般步骤
田志-Scott 说: 圆桌会议,讨论性能测试需求指标以及确定性能测试类型
分析性能测试需求正确性
整理最终的性能测试需求说明
田志-Scott 说: 这个是通用的方法 和收集软件需求 很类似
tao Chinese 说: 好,谢谢
田志-Scott 说: 我们现在很多实际项目 就是性能测试需求 不是非常明确的情况下 就进行了 这样会导致 我们执行过程中 出现很多问题
tao Chinese 说: 性能测试需求不搞好,都是白忙
田志-Scott 说: 非常对
tao Chinese 说: 性能测试需求应该对系统架构设计非常了解才好做吧
田志-Scott 说: 性能测试需求分析的正确性是整个性能测试工作的最基本前提。
若不能保证性能测试需求分析的正确性,即使性能测试工具使用的再正确,性能测试执行的再顺利,也无法保证性能测试达到想要的效果,即可能无法发现性能瓶颈、或者发现不了实际情况中应该出现的瓶颈。
tao Chinese说: 不能很表面化吧
Colin 说: 请问田老师:
1、对于java应用服务器内存泄漏分析定位
2、web前端性能分析
田志-Scott 说: 如果能对系统架构和技术 非常熟悉的话 才好做
田志-Scott 说: Colin 说 (7:37 PM): 请问田老师:
1、对于java应用服务器内存泄漏分析定位
2、web前端性能分析
Colin 说: 对于第二个问题主要是在应用jquery等框架后比较需要
田志-Scott 说: java 内存泄露
Colin 说: 谢谢
Colin 说:
田志-Scott 说: 我们现在很多项目都是J2EE的
田志-Scott 说: 如何定位 内存泄露 或者说 如果能定位到java 类
Colin 说:
田志-Scott 说: 我们可以通过 jprofile 工具 或者
田志-Scott 说: 比如线程监控工具
田志-Scott 说: 我这里绝一个例子
田志-Scott 说: 就是根据性能测试场景 的运行 然后如何定位 有问题的java 类
Colin 说:
田志-Scott 说: 有一个项目 进行大数量的性能测试 要找到 软件系统的 瓶颈点
田志-Scott 说: 目的就是说 系统运行多少业务数据 系统会出现瓶颈
田志-Scott 说: 首先 我们运行测试场景 采用负载测试的方式
田志-Scott 说: 酌减对系统施加压力
Colin 说:
田志-Scott 说: 然后请注意
田志-Scott 说: 一定要 建立 独立的监控环境
田志-Scott 说: 我们性能测试 除了 要建立我们场景运行的测试环境 之后 必须监控独立的监控环境
田志-Scott 说: 很多测试人员 可能比较依赖 LR的监控 有些指标用它比较好
田志-Scott 说: 有些 需要我们单独用工具监控
Colin 说: 独立的监控环境指什么
Colin 说: 明白
田志-Scott 说: 比如软件系统 在性能测试场景中 会有大量的线程 启用
Colin 说: 但我想lr也会有写帮助吧
田志-Scott 说: 恩 有些指标用LR
田志-Scott 说: 还是很好的
田志-Scott 说: ProcessExplorer 这个工具 在windows平台挺好用的
田志-Scott 说: 我推荐大家使用它来监控 线程
田志-Scott 说: java C++ 的都可以
田志-Scott 说: 这个工具是免费的
tao Chinese说: 内存泄露这个问题,也比较依赖于开发语言吧
田志-Scott 说: 它的好处是 每个thread都会有ID号
庄崇田 说: 刚才有个朋友提到的经常遇到27791错误,我有个解决办法可以试一下调整应用服务器tomcat 或者weblogic中的 server.xml中的两个参数 即可实现调优。分别是maxThreads、connectionTimeout
田志-Scott 说: 然后我们根据占用资源最多的ID 去java日志 或者其他语言的日志可以找到对应的类
田志-Scott 说: 甚至可以定位 类的方法
Colin 说: 是的
田志-Scott 说: 所以 可以明确定位 有问题的程序
田志-Scott 说: 庄崇田 说 (7:45 PM):
刚才有个朋友提到的经常遇到27791错误,我有个解决办法可以试一下调整应用服务器tomcat 或者weblogic中的 server.xml中的两个参数 即可实现调优。分别是maxThreads、
田志-Scott 说: 那个朋友可以参考一下
Colin 说: 但对tomcat,如果有这个问题,控制台应该已经报错了
田志-Scott 说: 所以 性能测试 是个很大的范围
若尘 说: 田老师,回到前面讨论的一个问题上,性能测试在对系统架构和技术非常熟悉的基础上才好做,但是如果最终性能测试的结果是,无法满足测试需求,是否说明架构设计本身存在问题?如果出现这种问题该怎么解决?
田志-Scott 说: 会出现
田志-Scott 说: 我举个例子
田志-Scott 说: 比如某某省的BOSS系统 明确要求
田志-Scott 说: VIP客户查询业务 就是要满足 300 用户并发 4000用户在线
庄崇田 说: 服务器关闭连接这个错误tomcat 一般不认为是个错误 在tomcat的日志中 我曾经也找不到相关记录
田志-Scott 说: 但是实际测试过程中 120 并发的条件下 系统就已经达到瓶颈
田志-Scott 说: 这样必须 进行 2个方面的优化 : 数据库 的SQl 语句是否可以进行优化
田志-Scott 说: 或者 应用软件 在设计中 实现的 数据读取方式 是不是有问题
田志-Scott 说: 在这个例子中 就是因为 直接采用JDBC 对数据库操作 而引起的 后来通过 对数据库访问层 从新设计
田志-Scott 说: 比如JMS
田志-Scott 说: 可以完全满足 之前的需求
田志-Scott 说: 所以 我们要根据 实际情况 进行分析 最后解决
shiquan123875@tom.com (E-mail Address Not Verified) 说: 听不懂。
tao Chinese 说: 性能测试看起来是个 性能需求,性能设计,性能测试,性能需求验证的过程
田志-Scott 说: 实际 是个好复杂的过程 呵呵
tao Chinese 说: 这个过程如何通过性能测试驱动呢,系统地方法有么
田志-Scott 说: 有通用方法和过程
田志-Scott 说: 但是也要根据软件业务系统 进行 针对性地分析
Colin 说: 请老师继续解答java内存泄漏的问题吧
田志-Scott 说: 内存泄露 有个明显的症状
Colin 说:
田志-Scott 说: 无论是java 还是C++
田志-Scott 说: 我们会发现 系统资源 占用
田志-Scott 说: 我忽然想起来
田志-Scott 说: 有个例子 可以说一下
Colin 说: 但对aix
Colin 说: 需要考虑jvm的情况
Colin 说: 只看系统好像不行
田志-Scott 说: windows 操作系统 和unix 操作系统 区别比较大
Colin 说: 是的
田志-Scott 说: 虚存段分为固定段(persistent segments)和工作段(working segments)
固定段在硬盘上有固定的存储位置,数据文件和执行文件 被映射到固定段。如下图1所示,在页面表(PFT,page frame table)中,段类型为C和P为固定段,C表示数据来自client端和远程,如NFS;P表示数据来自本地。
工作段在硬盘上没有固定的存储位置,当进程运行是产生工作段,由进程堆栈和数据区、文本段、共享库和数据段组成。当由于实存不足时,需要从实存中调出暂时不用的内存页(具体调页有具体的调页算法),也需要占用硬盘空间,这部分空间就是交换区,也就是AIX中的Paging Space。
田志-Scott 说: 我们要分析 最小化处理器和磁盘I/O在虚存上的开销,最小化命中失败的响应时间
田志-Scott 说: 还有不是只看内存的指标
田志-Scott 说: 有时候CPU 100%
tao Chinese 说: 恩,
田志-Scott 说: 也可以引起上下文 换频繁
tao Chinese 说: 还有就是jvm的机制考虑就可以了
tao Chinese 说: Sun JVM通过维护两个独立generational(世代)空间来管理内存:young generation和old generation,对象在这两个空间中被分配。通过管理young generation,JVM能很好处理大部分存活时间非常短的对象,这些对象在创建后很快就符合垃圾回收条件;young generation运行的非常快并且非常有效率,因为它或者回收不再使用的内存或者使用Copying机制把old对象转移到old generation。
tao Chinese 说: 它支持三种垃圾回收类型:
Copying(或者scavenge):在generations之间高效率地移动对象;默认为minor回收
Mark-compact:原地回收内存,但明显比Copying慢;默认为major回收
Incremental(或者train):持续回收内存,用来最小化单次回收花费的时间;你必须明确指定"-Xincgc"命令行参数。
tao Chinese 说: 这些看看jvm就可以了
田志-Scott 说: 大家可以看看aix 的内存换页
tao Chinese人 说: 内存泄露要不就是结合语言,要不就是检测线程吧
tao Chinese 说: 不过我想这里最好关注性能测试
tao Chinese 说: 呵呵
田志-Scott 说: 讨论成了 系统分析了
田志-Scott 说: 呵呵
Colin 说: 这是性能问题
田志-Scott 说: 继续
田志-Scott 说: 性能测试问题 可以分为几类
Colin 说: web前端性能问题
Colin 说: 在应用jquery、jxt等框架后
田志-Scott 说: 操作系统的性能问题 数据库的性能问题 还有就是web服务器的性能问题 和 中间件的性能问题
田志-Scott 说: 每个领域 都比较麻烦
Colin 说: 页面多是通过js绘制的
Colin 说: 这经常出现泄漏及性能问题
Colin 说: 如何测试web前端的性能的
Colin 说: 如果ie有内存泄漏如何去定位呢
田志-Scott 说: web性能测试
田志-Scott 说: 目前用的也比较多
若尘 说: Colin,能让田老师先给我们系统介绍一些性能测试的通用方法与过程,然后再针对您的具体问题进行讲解吗?
tao Chinese 说: 内存泄露是否可以理解为内存命中率与回收率
Colin 说:
tao Chinese 说: 还有个问题:性能测试的分析如何进行
田志-Scott 说: 性能测试 分析
田志-Scott 说: 从几个方面
主持人 说: 田老师,讲一下 如何通过分析进行有效性能测试的改进,发现性能瓶颈
田志-Scott 说: 好的
田志-Scott 说: 大家可以简单回顾一下PPT的结构
田志-Scott 说: PPT的结构 就是按照 捕获性能测试需求 制定性能测试策略 然后执行性能测试 和进行结果分析
田志-Scott 说: 这里 我举一个 中国电信充值平台的例子
horse 说: js造成的内存泄露怎测试呐
田志-Scott 说: 总体评价
1. 系统容量
a) 压力测试下,前台业务系统吞吐率达到63.842TPS,3G业务系统吞吐率达到71.1TPS。
b) 应用服务器CPU使用率极高,无法通过增加并发用户数提高事务吞吐率。
2. 系统稳定性
a) 在长时间压力测试下,运行5个多小时中系统吞吐率基本保持稳定;后3小时自助服务用例响应时间增大,返回业务错误的频率大幅增加,令总吞吐率下降。
田志-Scott 说:
3. 后台处理性能
a) 各后台事务对前台业务影响甚小
4. 故障恢复能力
a) 备份恢复运行正常。
b) 主机网络异常时,数据库服务换正常,IVR、DCC服务无法正常换。自服务由于场景之前的预运行期间退出并无法自动重启,未进行测试。
c) 主机重启恢复时,数据库换正常,DCC、IVR服务无法正常换。
d) 双机网络中断时,能换正常。
田志-Scott 说: 这是一个对 中国电信VC平台 性能测试后的结论
田志-Scott 说: PPT中有这个例子
田志-Scott 说: 然后根据结果 提出改进的建议
田志-Scott 说: 优化建议:
1. 优化业务处理代码,提高处理效率和事务吞吐率,降低系统资源占用,解决系统稳定性问题。2. 解决IVR、DCC、自服务无法自动正常换的问题。
taoChinese 说: 改进后的性能测试需求怎么不活
主持人 说: 改进后的性能测试需求怎么捕获
田志-Scott 说: 改进之后 就是进行 性能测试验证
taoChinese 说: 下一步的性能测试怎么进行
田志-Scott 说: 说白了 就是 要把优化后的场景 要重新跑 重新收集指标
荧火虫 说: 优化建议继续
Colin 说: 更正一下刚才的问题“jxt”应为“ext”框架
田志-Scott 说: 然后和上一次的性能测试基准 作比较
taoChinese 说: 由以前不存在的性能问题新产生的么
taoChinese 说: 如何考虑呢
田志-Scott 说: 这里说到一个性能测试基准
田志-Scott 说: 大家请注意
田志-Scott 说: 基准 benchmark
荧火虫 说: 优化建议没有了吗?最后是什么原因呢?
田志-Scott 说: 就是我们参照的指标 比如 某个软件1.0版本 支持300用户并发 3000用户在线 TPS 等等 有一谢列指标
horse 说: “ext”框架内存泄露问题如何检测?
taoChinese 说: “ext”框架内存泄露问题如何检测? 这个问题太专了吧,呵呵,看运气了
田志-Scott 说: 我们以它为基准 进行 性能验证 然后 和之前的 比较 看是否有改进和提高
Colin 说: horse,请让田老师先给大家介绍下通用的方法好吗?
taoChinese 说: 还有很多时候,性能测试的环境很难和真实环境一致
田志-Scott 说: 我们性能测试需求 其实也是通过 性能基准测试 得到的 对于不明白性能测试需求的软件架构 或者 不是很细致的
田志-Scott 说: 性能测试环境 对结果影响巨大
田志-Scott 说: 所以 为什么提倡尽量要和实际运行环境一致
田志-Scott 说: 我举个例子
taoChinese 说: 在这种条件下,如何做好性能测试,例如 可能存在1000个客户并发,不过性能测试工具虚拟的因为网络端口的限制,不是真正的并发,如何知道实际1000个并发发生的效果呢
taoChinese 说: 好,田老师,先说前面的问题
田志-Scott 说: 某软件系统 在 windows PC 机 2G内存 CPU单核
田志-Scott 说: 这个软件在运行50000个 业务 就达到瓶颈
田志-Scott 说: 但是 测试环境 改变
田志-Scott 说: 4G内存 和 4cpu的环境下 进行
田志-Scott 说: 方法一样的性能测试
田志-Scott 说: 结果是 运行了17万个业务 系统达到瓶颈
田志-Scott 说: 所以性能测试 是对测试环境 非常依恋的测试
田志-Scott 说: 如果是大型机
田志-Scott 说: 影响会更明显
主持人 说: 那环境不具备的话,怎么尽量做好些
田志-Scott 说: 测试结果 也会 有很大差别
taoChinese 说: 相对值意义大么
田志-Scott 说: 如果环境差距很大
田志-Scott 说: 没有意思
田志-Scott 说: 没有意义
田志-Scott 说: 刻意选择 比较接近的 环境
Colin 说: 具可比性
田志-Scott 说: 说的清楚了 就是软件系统所在的 环境 最好是接近生产环境的 如果不具备 我们要看硬件配置 差距多少
taoChinese 说: 假如:现在某个网站要测试10000个用户访问事务的并发,如果用10台机器,每台虚拟1000个并发,试图虚拟10000个总共并发,和实际环境有多大距离,10000个并发,对环境的最低要求有么?
田志-Scott 说: 10000个并发
田志-Scott 说: 大型机 也受不了
田志-Scott 说: 目前我做的项目中
田志-Scott 说: 并发最多是就是 BOSS系统 并发可以达到3000左右
taoChinese 说: 我的意思是:10个客户端测试机器虚拟10000个客户端访问的并发
田志-Scott 说: 但是交易量可以 上亿
田志-Scott 说: 这里 有个弊端
田志-Scott 说: 如果用10个客户端 模拟 10000个并发 网络可能会优先出现瓶颈
taoChinese 说: 是啊
田志-Scott 说: 做过性能测试的人员
田志-Scott 说: 应该知道
taoChinese 说: 网络就会出现问题
taoChinese 说: 那环境很难建立,怎么办呢
田志-Scott 说: windows 一台 客户端 可以并发多少
田志-Scott 说: 大家有印象没有
taoChinese 说:
主持人 说: 100个就很不错了
田志-Scott 说: 如果是大型业务系统 最多并发70个
taoChinese 说: 不过也要看什么资源占用率了
田志-Scott 说: 100个
Colin 说: 有过交换机过热的经历
田志-Scott 说: 已经很多了
田志-Scott 说: 那个时候 网络 就是系统瓶颈
taoChinese 说: 哪有什么办法么
田志-Scott 说: 所以 理论上 要客户端 越多 越好
taoChinese 说: 测试环境不好建立,我也要测试阿
田志-Scott 说: 是的
taoChinese 说: 还有那么多客户端,怎么同步协调进行测试呢
田志-Scott 说: 可以告诉一下 我们的测试环境监理
田志-Scott 说: 大家都是知道
田志-Scott 说: 大型项目中
田志-Scott 说: 测试人员的机器 可能只有10几台 但是开发可能有40多台
田志-Scott 说: 和合
田志-Scott 说: 我们原来为了模拟 比较接近的 环境 并发
taoChinese 说: hehe,好办法
田志-Scott 说: 在开发人员的机器上 装了load agent然后 在所有人员下班之后
田志-Scott 说: 进行大规模的性能测试
田志-Scott 说: 这个办法 就是对测试人员体力 又要求 必须通宵作了
田志-Scott 说: 但是做大型机的 测试
田志-Scott 说: 除非 有很多测试几
田志-Scott 说: 所以 还是一句话 性能测试 是环境依恋性 非常强的测试
Colin 说: 请问田老师对web前端性能测试有什么建议
田志-Scott 说: 无论是对 网络 硬件 以及 软件的搭建
taoChinese 说: 还有,并发有好几种:同一个业务线程存在多个实例,多个不同类别业务线程存在多个,二者兼而有之,这些在一个实际业务中是真实存在的,如何虚拟这种环境呢,就是同时存在多种复杂的访问事务,并发数在不同的时间不一样,
田志-Scott 说: 是的
田志-Scott 说: 这个时候 我们要在设计场景中
田志-Scott 说: 充分考虑 混合业务的组合
田志-Scott 说: 其实 这个工作 也是在捕获性能测试需求时 基本可以确定
田志-Scott 说: 所以我强调 性能测试需求的重要性 和 正确分析
taoChinese 说: 如果多个业务任务有先后的同步问题
taoChinese 说: 性能测试用例的执行要有协调控制,这个有好办法么
taoChinese 说: 例如:只有缴费后才能 充值
田志-Scott 说: 目前 测试工具 里
Colin 说: tao Chinese,能分享一点时间给大家吗?
taoChinese 说: 而且 缴费后 一般都要在10分钟内充值
田志-Scott 说: 恩
taoChinese 说: Colin 可以的
taoChinese 说: 您可以问了
Colin 说: 谢谢,请问田老师对web前端性能测试有什么建议
Colin 说: 我们现在在实际的项目中遇到ext的问题
Colin 说: horse你还在吗?
田志-Scott 说: 我先回答那个问题
田志-Scott 说: 晕
Colin 说:
若尘 说: tao Chinese 说 (20:24): 性能测试用例的执行要有协调控制,这个有好办法么
若尘 说: 田老师先说下这个
若尘 说: 呵呵
田志-Scott 说: 这个就是要在场景执行过程的技巧
田志-Scott 说: 我们都知道 场景执行 可以分为很多种
田志-Scott 说: 由你们提到的 协调控制
田志-Scott 说: 还有 一些 采取 慢慢增加压力 或者 持续加大到一定压力后 稳定运行 很多场景根据实际需求定做
田志-Scott 说: 协调控制 我们 可以设置A 业务 在做完多少次的交易后
田志-Scott 说: 暂停 然后让B业务 用A业务的数据 继续 执行场景
田志-Scott 说: 或者作对冲业务 看自己需求 都可以实现的
田志-Scott 说: 或者 我们也可以 在测试脚本中
田志-Scott 说: 进行写测试脚本 控制 工作流的 转向
田志-Scott 说: 所以 总结 可以有2个方式 一种 我们可以通过测试脚本 进行业务流程控制
田志-Scott 说: 一种是每种业务 调试完之后 通过场景控制器 来协调 也没有问题
田志-Scott 说: 大家对这个解释 有什么问题
Colin 说: tao应该好好努力下了
taoChinese 说: 谢谢,很好的方法
taoChinese 说: 呵呵
田志-Scott 说: 大家对于 大数量的测试
田志-Scott 说: 有什么看法
田志-Scott 说: 比如1000万以上的用户量 交易数 上亿的那种数据
田志-Scott 说: 如何制造
taoChinese 说: 如何产生比较真实地数据
taoChinese 说: 是个问题
田志-Scott 说: 制造真实的测试数据
田志-Scott 说: 是个极为痛苦的过程 呵呵
田志-Scott 说: 为什么这么说
taoChinese 说: 还有就是数据积累过程中,性能的变化的趋势分析
田志-Scott 说: 大家都知道 现在业务的复杂度
taoChinese 说: 性能总会达到瓶颈的,如何在压力逐步增大的时候适度做好趋势分析
田志-Scott 说: 比如一个web 购物网站
田志-Scott 说: 从开始到最后需要很多表 之间数据传递
taoChinese 说: 是啊
田志-Scott 说: 那我们 如何 能批量制造我们需要的数据
田志-Scott 说: 可以推荐一个好的方式
taoChinese 说: 怎么才能有条不屡的制造出来
田志-Scott 说: 大家都用过oracle 或者 Sqlserver 是不是
田志-Scott 说: 用专门的数据库 工具 我们把业务流程的步骤 记录下来
田志-Scott 说: 然后 我们性能测试人员 独立开发 存储过程
田志-Scott 说: 比如 一次开户的操作 会走27张表
田志-Scott 说: 移动BOSS的开户业务 大约是30个表左右
田志-Scott 说: 如果我们 进行 1000万级别的开户测试 数据就是最大的问题
taoChinese 说: 如果遇到同时存入多个表的数据,大量的制造,一定写程序吗
田志-Scott 说: 决定于业务
田志-Scott 说: 业务决定技术 呵呵
田志-Scott 说: 比如 业务要求 数据 开户之后 数据就不能在开户了
主持人 说: 其他人还有问题么
田志-Scott 说: 无法重复利用
田志-Scott 说: 所以 我们要开发 对冲的业务
田志-Scott 说: 要把所有的数据相关的表状态 全部 通过存储过程 来进行修改
田志-Scott 说: 可以恢复到原始数据状态
田志-Scott 说: 到时候 可以重复利用
若尘 说: 我能问下关于集成测试方面的问题吗?
田志-Scott 说: 就是1000亿 数据量 也没有关系
田志-Scott 说: 呵呵
田志-Scott 说: 集成测试
Colin 说: 虽然很e
Colin 说: 但我还是想聆听田老师的教诲
若尘 说: Colin,您先问
田志-Scott 说: 一起学习
田志-Scott 说: 讨论
若尘 说: 您问完了,我再问
田志-Scott 说: 大家还有什么问题吗
Colin 说: 谢谢,请问田老师对web前端的测试有什么建议吗?
小人物 说: 上来晚了
田志-Scott 说: 要不我就讲讲数据库 优化的
小人物 说: 有人又全部的聊天记录吗,保存一份发给我可否
田志-Scott 说: web性能测试
Colin 说: 前端的
Colin 说: 性能测试
田志-Scott 说: 你想如何做呢
Colin 说: 比如我用js在页面上做了很多工作,结果发现ie的内存占的很多,速度也很慢
Colin 说: 如何测试js绘制页面的速度呢
Colin 说: 如何定位
田志-Scott 说: 我们可以通过web 测试工具
Colin 说: js的内存泄漏问题
田志-Scott 说: 性能测试工具
Colin 说:
田志-Scott 说: 现在
Colin 说:
田志-Scott 说: 很多工具 会对 web 页面的 每一步 进行分解
田志-Scott 说: 并且可以知道 是在进行那个页面操作的时候 transaction time
Colin 说: 比如httpwatch是吗
田志-Scott 说: 用的最多
田志-Scott 说: 我们重点就是关注 transaction time 时间比较多的页面
田志-Scott 说: 然后 在进行 里边代码的分析
Colin 说: 但问题是在js绘制的时间
Colin 说: 服务器相应发回的时间可能不那么长
Colin 说: 感谢田老师的回答,希望以后能有机会再向您学习。
Colin 说: 若尘,你可以问了
小人物 说: Colin是崔闻建吗
若尘 说: 田老师,如果我们系统由多个模块组成,性能测试是针对整个系统?是否可以针对模块进行?
田志-Scott 说: 根绝需求
荧火虫 说: 呵呵,是他
田志-Scott 说: 需求 决定你们是测试模块 还是测试系统
田志-Scott 说: 如果我们的需求是针对某个模块 进行性能测试 那就执行 如果是针对整个系统 那就整个系统进行
若尘 说: 如果一个业务的实现需要所有模块联起来实现,在测试其中一个模块的性能时,自己模拟其他模块的功能吗?
主持人 说: 模块的概念太泛泛了吧
田志-Scott 说: 如果是模块关联的 然后还必须对这个模块进行性能测试 那就要模拟 相互交互的业务
田志-Scott 说: 大家还有什么问题 需要讨论的 时间差不多了阿 好渴阿
主持人 说: 呵呵
田志-Scott 说: 数据库的优化 以后有机会了
主持人 说: 没水喝阿,早知道送一杯
田志-Scott 说: 可以再进行深入的讨论
田志-Scott 说: 公司的人 走光了 就我自己 好孤独啊
田志-Scott 说: 呵呵
主持人 说: 性能测试用例设计有什么好的方法么
若尘 说: 有我们陪着呢,呵呵
主持人 说: 田老师,这个问题
田志-Scott 说: 大家可以从几个方面设计
田志-Scott 说: 首先 通用的办法
田志-Scott 说: 要有测试编号 然后 我们要明确 性能测试用例的目的(比如压力测试,负载测试或者恢复性测试等等)
田志-Scott 说: 然后 就是最关键的
田志-Scott 说: 预置条件
田志-Scott 说: 我们要尽量发散思维 多想一些喝性能测试需求 贴近的 或者更多的 预置条件
田志-Scott 说: 然后测试用利 要非常清晰的明确 测试过程
庄崇田 说: 田老师,还没吃饭呢?呵呵您像一只蜡烛,燃烧自己,照亮别人啊!哈哈哈 老师注意身体啊
庄崇田 说: 您发言时虽然显示MSN昵称,但是群内用户看到的都会是您改过的昵称。
田志-Scott 说: 比如 是采取持续加压方式 还是 酌减增加压力 或者 在压力一定的条件下 的等等
主持人 说: 今天时间要到了
田志-Scott 说: 其次测试用力 体现预期结果 和 我们要监控的指标
田志-Scott 说: 基本就OKle
主持人 说: 大家还有什么问题么
田志-Scott 说: 一个完整的性能测试用例 就可以完成了
田志-Scott 说: 如果大家有什么问题 有机会可以一起继续讨论
主持人 说: 性能测试的范围比较大,问题也多,呵呵
田志-Scott 说: 是的 范围太大 问题太多
主持人 说: 那今天就到这里了,感谢田志老师的辛苦答疑
田志-Scott 说: 不客气
主持人 说: 也感谢大家的积极参与
若尘 说: 谢谢田老师
田志-Scott 说: 以后希望有机会和大家 一起讨论
主持人 说: 好的
田志-Scott 说: 那今天 就到这里
主持人 说: 明天在线交流记录会发布到www.uml.org.cn
主持人 说: 今天就到这里,
主持人 说: 大家可以撤离了
田志-Scott 说: 好的
若尘 说: 好的

最新公开课计划

成功案例
某博彩行业 数据库自动化测试
IT服务商 Web安全测试
IT服务商 自动化测试框架
海航股份 单元测试、重构
测试需求分析与测试用例分析
互联网web测试方法与实践
基于Selenium的Web自动化测试
更多...   
 
 
 
 
 

相关培训课程

性能测试方法与技术
测试过程与团队管理
LoadRunner进行性能测试
WEB应用的软件测试
手机软件测试
白盒测试方法与技术

火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
版权所有:UML软件工程组织