性能测试:通过服务器日志获取性能需求

         接触过性能测试的童鞋都知道,想要做好一个项目的性能测试,性能需求的获取至关重要~!如果公司有做过性能测试还好,大家可以拿之前的性能测试数据作为参考;但一般的公司来说,对于性能需求的指定基本都是一头雾水,需要大家自己去整理 
        性能需求的获取无外乎以下几种方法:
1)产品、老大直接制定!
2)参考其他行业;
3)80/20原则;
4)服务器日志获取;
         
        为了测试结果更加准确,最好的结果当然是服务器日志获取,因为这种方式真实有效~但是好多人都苦于不知如何去获取:看不懂服务器日志;拿到日志后无从下手;(PS:这也是本文产生的由来 )
        下面由鄙人来为大家一一道来~
        
        一)前提
        没有明确的性能需求;系统版本已运行很长一段时间,期间所积累的数据足以分析出客户业务使用情况;

二)日志解读(以apache日志为例)

1. apache日志包含什么?
Apache的日志功能主要是指其在运行中对服务器活动进行的记录。日志内容主要涵盖了服务器访问者身份、访问时间、具体访问情况及服务器运行错误信息等;

2.我们需要看哪些? 
在Apache采用默认方式安装并运行后,将在安装目录的logs文件夹下生成如图所示的access.log和error.log两种日志文件。

图中左侧为access.log文件,记录所有访问者对服务器进行的详细操作;右侧为error.log文件,记录服务器运行期间,出现的错误与异常等。在此,研究服务器日志的主要目的是获取性能测试需求,即需要了解所有访问者对服务器的具体访问情况。因此,重点关注Apache的access.log文件。 (PS:Apache配置文件为httpd.conf,在配置文件中通过CustomLog命令可以设置日志文件存放路径,如“CustomLog /usr/local/apache/logs/access_log common”

日志解读:

如上图:
第一部分为127.0.0.1;(远程主机的地址,标明访问者来源)
第二、三部分用“-”进行标识;(第二部分:访问者的email地址或者其他唯一性标识。基于安全考虑,通常用“-”替代;第三部分:访问者的用户名。基于安全考虑,通常也用“-”替代)
第四部分为[02/Jun/2009:22:12:30+0800];(访问请求发生的时间。)
第五部分为”GET /HTTP/1.0”;(访问请求的类型。此信息的典型格式为“方法-资源-协议”。方法包括GET、POST等;资源是指浏览者向服务器请求的文档或URL等;协议通常是HTTP+版本号)
第六部分为200;(服务器返回的状态码,标明请求的结果。如“200”为请求成功,“404”为页面未找到,“500”为服务器内部错误等)
第七部分为40283(响应给客户端的总字节数。)
PS:可在Apache的配置文件httpd.conf中,通过配置LogFormat的参数来自行定制日志文件的记录格式。如:LogFormat "%h %l %u %t \"%r\" %>s %b" common表示日志中记录上述七部分内容。

三) 日志转换为需求
        接下来就是重点,将日志转换为我们看的懂得需求。在这里,我们借助WebLog Expert(window日志分析工具)。
(官方网站:http://www.weblogexpert.com;

官方实例页:http://www.weblogexpert.com/sample/index.htm 为了便于用户分析查看报告,官方专门提供了一个例子。)

PS:其他日志分析工具awstats,下载地址:http://awstats.sourceforge.net

1.日志合并  
大家都知道IIS日志大部分情况下都是分开显示的,我们要进行日志分析当然希望分析全部日志,这里我们可以借助批处理程序;
        步骤如下:
1)导出全部log日志;
2) 在log日志的目录下新建txt文档,编辑文档内容为:type *.log>>all.log,保存为cindy.bat文件。双击bat文件,即可生成all.log文件。
 

2.使用weblog expert生成分析
1)双击打开程序,创建日志分析;

2)填好log方式和地址;

3)生成结果;

General Statistics(概要统计):对系统当前的一些基础性能指标进行统计,提供出相应指标的一些平均和总计数值。这一信息有助于我们掌握系统在某段时间内的整体情况,如:PV(页面访问量)。

Activity Statistics(活动统计):General Statistics提供了整个系统在运行期间,某些指标的平均和总计数值,但对性能测试而言,这些平均和总计数值往往是不够的,我们还需要查看一些峰值数据,或者说更希望看到各指标在不同时间段内的值分布情况。Activity Statistics就能提供出每天甚至每小时内各项指标数据,如每日用户访问量、每日点击量、每小时用户访问量、每小时点击量等。根据这些数据生成的图表反应了相关指标的分布趋势和峰值。
Access Statistics(访问统计):Activity Statistics提供每天、每小时的各项指标数据,侧重于各指标在时间上的分布,而Access Statistics反应的是业务或页面等的访问次数。Access Statistics菜单下支持按系统中页面、文件、图片、目录及入口页面的统计分类。Access Statistics可帮助我们确定性能测试的主要业务点(性能测试不同于功能测试,不能针对于整个系统的所有功能都开展性能测试,耗费人力物力且没有实际意义),从而更加真实有效的模拟大量用户的操作。从图表中可得出“每日页面访问趋势”及“最热门的访问页面”,这些信息对性能测试的用例及场景设计具有很强的参考价值。 
Visitors(用户统计):提供依据IP来分类统计的点击量、用户访问量及带宽等各指标值。

以上为常用图标,其他图标也能帮助大家定位很多东西,这就需要靠大家去研究啦~!【如Referrers(提交统计):可提供最热站点、最热URL等指标分布数据;Browsers(浏览器统计):可提供用户使用的各类浏览器和操作系统的分配比例,方便大家在性能测试中更真实的模拟用户使用情况;Errors(错误统计):可提供系统运行期间出现错误的统计,通过这些信息能够帮助大家定位系统中存在的问题,进而通过分析问题发生原因,在新版本系统中有效避免等。 】

至此搞定,大家就能够获取到准确真实的性能需求啦,接下来该干嘛干嘛了~!

【Loadrunner】性能测试:通过服务器日志获取性能需求的更多相关文章

  1. 利用WebLog Experet分析日志获取性能需求

    一.下载WebLog Expert日志分析工具 官网下载地址:http://www.weblogexpert.com/download.htm 二.安装 安装很简单,点击“下一步”默认安装即可 三.配 ...

  2. 本地多张图片采用jmeter上传到ftp服务器的方法和获取服务器日志中某些关键字的基本方法

    测试需求: 本地图片上传到ftp服务器里和另外两台不同算法比对服务器进行比对,得出漏检和误检结果:这实际属于功能测试范畴. 测试思路: 第一种方法:使用实际场景的摄像机抓拍图片上传到服务器,用录屏软件 ...

  3. LoadRunner性能测试巧匠训练营

    <LoadRunner性能测试巧匠训练营>基本信息作者: 赵强 邹伟伟 任健勇 丛书名: 实战出版社:机械工业出版社ISBN:9787111487005上架时间:2015-1-7出版日期: ...

  4. LoadRunner性能测试结果分析(转载)

    性能测试的需求指标:本次测试的要求是验证在30分钟内完成2000次用户登录系统,然后进行考勤业务,最后退出,在业务操作过程中页面的响应时间不超过3秒,并且服务器的CPU使用率.内存使用率分别不超过75 ...

  5. LoadRunner性能测试样例分析

    LR性能测试结果样例分析 测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源 ...

  6. 如何学习LoadRunner性能测试?

    最近组内同事针对性能测试LR的脚本部分做了介绍,是个不错的分享.会后反思自己也有很长一段时间没做性能测试了,根据以往的经验,有必要做些整理和补充,本文主要介绍一些Loadrunner性能测试的学习方法 ...

  7. shell 在手分析服务器日志【转】

    自己的小网站跑在阿里云的 ECS 上面, 偶尔也去分析分析自己网站服务器日志,看看网站的访问量.看看有没有黑阔搞破坏!于是收集,整理一些服务器日志分析命令,大家可以试试! awk '{print $1 ...

  8. RobotFrameWork(十三)RobotFramework与loadrunner性能测试结合(基于Remote库)

    一般我们进行完功能测试,都需要进行下性能测试,那么这章我来介绍下,RobotFramework与loadrunner性能测试的融合,即运行完自动化功能测试,借助RobotFramework的Remot ...

  9. python websocket网页实时显示远程服务器日志信息

    功能:用websocket技术,在运维工具的浏览器上实时显示远程服务器上的日志信息 一般我们在运维工具部署环境的时候,需要实时展现部署过程中的信息,或者在浏览器中实时显示程序日志给开发人员看.你还在用 ...

随机推荐

  1. [转]oracle存储过程、声明变量、for循环

    oracle存储过程.声明变量.for循环 1.创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out ty ...

  2. Win10開始菜单打不开

    一.前言 自从用Win10之后(附上<我的Win10之旅>).用清理软件.总是深度清理,导致rt问题. 每次百度都是没用的解决方法: 今天,再一次清理(Wise Care 365 注冊表深 ...

  3. Case用法

    SELECT <myColumnSpec> = CASE WHEN <A> THEN <somethingA> WHEN <B> THEN <so ...

  4. ChemDraw加键的两种方法

    绘制化学结构离不开9种ChemDraw键工具,键工具在绘制过程中提供了最大的使用优势,这种优势体现在键角.键长的绘制,故很有必要学习相关的ChemDraw使用技巧.本ChemDraw教程将具体介绍在C ...

  5. 立即调用的函数表达式---IIFE

    有些人则称为“自执行的匿名函数” 在闭包中,我们经常需要使用到匿名函数,我感觉闭包就是一种匿名函数,子集. 但是直接在匿名函数后面调用函数是会出错的.比如: function () { alert(& ...

  6. 详解JavaScript的splice()方法

    from:http://www.jquerycn.cn/a_10447 在javascript中splice()方法,是一个很强的数组方法,它有多种用法.splice()主要用途是向数组的中部插入项. ...

  7. 为KindEditor编辑器中的内容添加样式,使得自己定义前台页面显示效果与编辑器效果一致

    KindEditor 本身自带有一定的样式,且为内部样式,在使用过程中,难免会发现部分效果不是我们想要的,因此.KindEditor提代了两种方式供使用着调用 1.内部样式.通过 cssData 属性 ...

  8. 墨卡托投影, GPS 坐标转像素, GPS 坐标转距离

    Before: 1. 研究的需要, 在 google map 上爬取了一些的静态卫星地图图片,每张图片的像素为 256*256 2. 通过 photshop 将这些地图碎片手动拼成了地图, 地图只是覆 ...

  9. Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

    MySQL在linux安装之后,连接到服务,报了下面的错误: ERROR 2002 (HY000): Can't connect to local MySQL server through socke ...

  10. UIBarButtonItem

    1.UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在IOS里经常用到. 我们看看它的如何使用: 下面的图显示了导航控 ...