51Testing软件测试论坛

标题: 愁死了新接了个任务,没什么思路啊 [打印本页]

作者: 放任无奈    时间: 2010-3-27 17:28
标题: 愁死了新接了个任务,没什么思路啊
一个C/S系统
服务器端就是个SYBASE数据库
客户端是应用程序
功能如下:
登录后
浏览服务器端存档的文档
双击选中的文档
就在程序中调用WORD控件打开浏览
可以进行各种编辑操作

文档是在数据库中保存的
昨天用LOADRUNNER录制了一下和数据库的交互
发现读取文本是通过TESTPTR和READTEXT实现的

问题是
客户觉得程序运行慢
从双击程序中的文档名,到最后在程序中的WORD中展现出来要10s

现在我要给这个程序测性能...
真的没什么思路啊 第一次接触C/S系统
试了下展示上万字的文档
在程序调用出WORD控件之前(观察进程中的WINWORD.EXE)
有几秒的空白时间 我估计这段时间就是在从数据库READTEXT

问一下有这方面经验的前辈
从一个数据库中READTEXT出一万字的文档 会成为瓶颈么?
这个项目还有什么思路
我真是没啥办法..
作者: 千里    时间: 2010-3-27 22:26
这个性能问题你们公司肯定都知道了吧,要开发和项目经理协查吧。
作者: 放任无奈    时间: 2010-3-27 22:42
原帖由 千里 于 2010-3-27 22:26 发表
这个性能问题你们公司肯定都知道了吧,要开发和项目经理协查吧。


谢谢斑竹回复 问题是已经都知道的 开发人员也重新做了一版程序给客户(目前还没有反馈)
但还是提交过来测试性能了
可能开发人员是这么想的 既然出现了性能问题 就提交性能测试看一下吧

现在我的思路就是
用读取文本的SQL语句(READTEXT)读个大些的文本
看一下是不是有瓶颈(我估计不会有)
然后看看文本展示的方式能否改进
目前我看到的应该是读取出所有的文本后再展示到WORD控件中
(READTEXT方法是分批读入的,每次32768字节)
可以试试直接调用WORD控件,然后每READTEXT一次,就写入一次内容

至于其他方面 我真的想不出有什么测的了
感觉只能靠开发人员优化代码了
不知道作为性能测试人员 还有哪些可以做的
请各位前辈指点

我是第一次接触到C/S系统 感觉好迷茫啊
作者: talo    时间: 2010-3-28 00:21
'有几秒的空白时间 我估计这段时间就是在从数据库READTEXT'

最好想办法查出这个问题,是网络慢还是数据索引问题

大小文件都要试一下,比如说Client端连续打开100次大数据文件是否与第1次相比速度慢了许多?为什么?10S的读取速度是否与文件大小有关?

一开始谁都会很迷惘...我觉得最好的办法是尽快尽全力的了解系统和工作原理才能适当找出测试点.
作者: 千里    时间: 2010-3-29 12:03
你只能做一些辅查的,我觉得你的实力目前只能做这么多。
如果性能瓶颈初步定位在数据库,你可以做大批量数据库操作。
同时主要还得请最懂数据库的进行调优,这觉得这是重点。
作者: 放任无奈    时间: 2010-3-29 22:28
原帖由 千里 于 2010-3-29 12:03 发表
你只能做一些辅查的,我觉得你的实力目前只能做这么多。
如果性能瓶颈初步定位在数据库,你可以做大批量数据库操作。
同时主要还得请最懂数据库的进行调优,这觉得这是重点。


斑竹说的对
我现在做的只能是这些了
再进一步定位问题就需要深入到程序内部了

另外
附上我的测试结果和最后与开发决定的解决方案
希望能够给一些和我一样的菜鸟一些帮助

我的测试方法:
选取两个典型文档进行打开操作
大文档有30页,小文档只有3行

测试发现
从在程序中双击文档名
到进程中出现WINWORD进程
大文档耗时10s+ 小文档耗时1s

从进程中出现WINWORD
到最后WORD控件和内容展示出来
大文档5s-
小文档1s

所以问题就是找出这两段时间内程序在做什么
第一段时间 很显然包括从数据库中取回文档内容
那对数据库的操作是否会成为瓶颈呢
我通过用LoadRunner录制Sybase Dblib协议
抓到了程序对数据库的操作(即本帖开始提到的READTEXT方式)
通过脚本回放读取大文档的操作
发现此步耗时在0.1s级别(看来 数据库的基本操作是不会成为瓶颈的)
那很显然 将内容读取到客户端后还有其他操作
而这是这些操作导致了耗时过长
但具体是什么操作
就不是我等菜鸟能涉及到的了
应该是要有白盒技术了

今天将我上面得到的结果反馈给了设计人员
他也给出了详细的解释
问题确实是我分析的那样

1、双击文件名后 先到数据库取回内容
2、取回的内容为HTML格式 将HTML格式转换成WORD格式保存在内存中
3、读取内存中的WORD文本 打开WORD控件并展示
耗时主要是在第二步,转换过程涉及到了很多步骤,大文本情况下是很耗时的
所以现在要解决这个问题 就要取消第二步 改成从数据库取回直接保存成WORD形式
大概意思就是这样 具体的我也不明白了

以后有精力还是要多学习编码设计啊

[ 本帖最后由 放任无奈 于 2010-3-29 22:31 编辑 ]
作者: 千里    时间: 2010-3-30 09:10
楼主做得这种程度很不容易了




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2