[19:21:40.405.345] begin_tpbegin
[19:21:40.405.532] end_tpbegin
[19:21:40.405.639] begin_tpsetbranch
[19:21:40.405.742] end_tpsetbranch
[19:21:40.406.175] begin_tpcall
[19:21:46.732.888] end_tpcall
[19:21:46.733.650] begin_tpcommit
[19:21:46.832.538] end_tpcommit
第一个字段是时间点时间,第二个字段是该时间点描述串,两个字段用空格间隔。从这个文件可以看出,fcgi进程是循环处理业务的。begin_tpbegin处开始一笔业务,begin_tpcall和end_tpcall之间是TE_tpcall()发起请求到收到应答的时间,begin_tpbegin和end_tpbegin之间是TE_tpcommit()发起提交到收到提交应答的时间。而end_tpcommit到begin_tpcall是fcgi进程从一笔业务结束到开始下一笔业务的时间,在这里也就是fcgi进程从Web Server获取HTTP请求的时间。
从这种格式的原始数据文件可以编程序计算出相临时间点之间的时间差,并可以计算出所有交易的平均时间差。也可以用excel打开这种格式的原始数据文件,按空格分隔各列,读入excel后就可以使用excel提供的函数(入SEC()函数从hh:mm:ss时间格式换算成秒)和公式计算时间差和平均值,以及产生图表等等。事实证明excel的功能是十分强大和方便的。
二.误差的判断和排除。
根据原始数据统计出的3种压力情况下fcgi各点时间如下。 10_10_5_2(ms)20_20_10_2(ms)30_20_10_2(ms)
TPC(笔/秒) 2.169672.285712.21911
fcgireceive from fcgi3439311676
tpcall409676148067
tpcommit176204205
total_fcgi461587499731
比较10_10_5_2和20_20_10_2,由于20_20_10_2在SUN主机上启动fcgi进程和svr_cc服务进程数都比10_10_5_2多,SUN上的压力也较大,因此receive from fcgi的时间也较大是合理的。比较20_20_10_2和30_20_10_2,2在SUN主机上,压力没有变化,仅是有HTTP请求的排队(因为browser进程比fcgi进程多),SUN上的压力应基本一样,而receive from fcgi的时间有较大的差别是不合理的。考虑到在测30_20_10_2并发时有失败业务,怀疑可能由于browser上加给web Server过大造成失败。这次性能测试主要测试系统正常(业务正常,压力情况是预计压力情况)时的系统情况,而在有业务失败时往往有些前端进程工作不正常,不能对后台造成预期的压力,这时取平均值可能会造成较大误差。
文章来源于领测软件测试网 https://www.ltesting.net/