内容简介:前言:性能测试不同情况一般解决方案:
前言:
性能测试不同情况
-
版本升级,已经有用户数据
-
新产品,无用户数据
一般解决方案:
-
同类产品对比
-
线上数据挖掘
-
目标驱动法(此方法从性能测试满足领域切入)
本次用户操作信息的数据收集及分析方案,适用范围:旧系统升级、未建立起流量回放机制
概要总结
1,通过IIS、Apache、Nginx建立用户信息收集机制
2,通过WebLog Expert进行数据分析,进而确定用户行为
作为常用的Web服务器IIS、Apache、Nginx,当用户通过客户端发送请求到Web服务器时,都会在访问日志中记录下来。
日志收集:
1,IIS:
IIS日志的设置方法说明如下。在IIS中找到需要的网站,打开日志功能,如下图:
IIS默认支持如下4种日志格式:
Microsoft IIS日志文件格式
信息记录在以逗号分隔的ASCII文本文件中
数据是固定的,不能自定义该日志
单个传输有多条记录
NCSA公用日志文件格式
信息记录在使用(美国)国际计算技术应用中心(NCSA)格式的ASCII文本文件中
数据是固定的,不能自定义该日志
单个传输有多条记录
W3C扩展日志文件格式
W3C(万维网联合会)扩展日志文件格式是SMTP服务及其他IIS服务的默认日志记录格式
数据是变化的,可以选择要跟踪的内容
此种格式是日志大小的很好的选择
信息记录在ASCII文本文件中
这种恶是包括某些仅适用于Web和文件传输协议(FTP)服务的字段选项
单个传输有多条记录
ODBC日志记录
使用此格式前,必须建立一个与开放式数据库连接(ODBC)兼容的数据库。
信息记录在数据库中
单个传输有多条记录
如果使用IIS作为Web服务器,建议使用W3C格式,这里可以通过格式后的选择字段功能为日志添加监控属性,数据越多,对后期分析可以提供的支持就越强,如下图
2,Apache:
Apache的访问日志格式支持自定义,打开Apache下的httpd.conf文件,使用LogFormat命令来查找系统默认的日志格式,也可以自行定义需要的日志格式。
在httpd.conf文件中找到如下内容:
LogFormat “%h %l %u %t \“%r\ “ %s %b \”%{Referer}i \”\”%{User-Agent}i\”“combined
LogFormat “%h %l %u %t \“%r \“ %s %b \”common
下面简单介绍一下LogFormat的使用格式。典型的记录格式如下:
LogFormat “%h %l %u %t \“%r \“ %s %b \”common
CustomLog logs/access_log common
它定义了一种特定的记录格式字符串,并给它取名为common
其中的“%”表示服务器用某种信息替换,其他字符则不做替换。引号(“)必须加反斜杠转义,一避免被解释为字符串的结束,格式字符串还可以包含特殊的控制符,如换行符”\n“。制表符”\t“
CustomLog指令建立一个使用制定别名的新日志文件,除非其文件名是以斜杠开头的绝对路径,否则其路径就是相对于ServerRoot的相对路径
上述配置是一种被统称为通用日志格式(CLF)的记录格式,它被许多不同的Web服务器所采用,并被许多日志分析程序识别,它产生的记录如下:
我们将记录的部分一个一个说明下:
127.0.0.1 :为发送请求到服务器的客户IP地址。如果HostnameLookups设置为ON,则服务器会尝试解析这个IP地址idea主机名并替换此处的IP地址,但并不推荐这样做,因为他会显著拖慢服务器,最好用一个日志后续处理器来判断主机名,比如logresolve。如果客户和服务器之间存在代理,那么记录中的这个IP地址代理的IP地址,而不是客户机的真实IP地址。
-(%l) :为客户端identd进程判断的RFC1413身份(identity),输出中的符号“-”表示此处的信息无效,除非在严格控制的内部网络中,此心刺通常很不可靠,不应该被使用。只有在将identityCheck指令设置为ON是,Apache试图得到这项信息。
Frank(%u) :为HTTP认证系统得到的访问该网页的客户标识(userid),环境变量REMOTE_USER会被设置为该值并提供给CGI脚本。如果状态吗是401,表示客户未通过认证,则此值没有意义,如果网页没有设置密码保护,则此项将是“-”
{10/Oct/2000:13:55:36 -0700}(%t) :为服务器完成请求处理的时间,其格式如下:
{日/月/年:时:分:秒 时区}
日=2个数字位
月=3个字母位
年=4个数字位
时=2个数字位
分=2个数字位
秒=2个数字位
时区=(+正|-负)4个数字位
可以在格式字符串中使用%{format}t来改变时间的输出形式,其中的format与C标准库中的strftime()用法相同。
“GET /Apache_pb.gif HTTP/1.0“(\”%r\”): 为客户端发出的包含许多有用信息的请求行。可以看出,该客户的动作是GET,请求的资源是/apache_pb.gif,使用的协议是HTTP/1.0。另外,还可以记录其他信息,如格式字符串“%m %U %q %H “会记录动作、路径、查询字符串、协议,其输入与“%r”一样。
2 00(%>s): 为服务器返回给客户端的状态码。这个信息非常有价值,因为他指示了请求的结果,或者被成功响应了(以2开头),或者被重定向了(以3开头),或者出错了(以4开头),或者产生了服务器端错误(以5开头)。完整的状态码列表参见HTTP规范(RFC2616).
2326(%b): 是返回给客户端的不包括响应头的字节数。如果没有信息返回,则此项应该是“-”,如果希望记录为“0”的形式,就应该用%b。
即:
首先使用LogFormat命令LogFormat “%h %l %u %t \“%r \“ %s %b \”common定义日志格式,然后在通过CustomLog命令CustomLog “c:/logs/access.log” common为日志设置存放地址。这样就完成了Apache日志的设定工作。
3,Nginx:
Nginx日志相关指令主要有如下2条:
a,Log_format,用来设置日志格式。
b,access_log,用来指定文件的存放路径、格式和缓存大小。
log_format格式
log_forma name(格式名称) 格式样式(即想要得到什么样的日志内容)
默认的示例如下:
注释如下:
$remote_addr:与$http_x_forwarded_for一起用于记录客户端的IP地址。
$remote_user:用来记录客户端用户名称。
$time_loca:用来记录访问时间与时区。
%request:用来记录请求的URL与HTTP协议。
%status:用来记录请求状态,成功是200。
$body_bytes_s ent:记录发送给客户端文件主体内容的大小。
$http_referer:用来记录是从哪个页面链接访问过来的
$http_uesr_agent:记录客户浏览器的相关信息。
通常Web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_addr得到的IP地址是反向代理服务器的IP地址。反向代理服务器在转发请求的HTTP信息头中,可以增加x_forwarded_for信息,用于记录原有客户端的IP地址和原来客户端的请求的服务器地址。举例如下:
用access_log
用log_format指令设置日志后,需要用access_log指令指定日志文件的存放路径,
access_log path(存放路径) format(自定义日志名称)
示例:
用log_format定义了一个mylogformat的日志,可以写成如下语法:
access_log logs/access.log mylogformat;
如果不想启用日志,语法如下:
access_log off;
在定义日志目录中要注意的是,nginx进程设置的用户和组必须有对该路径创建文件的权限,假设nginx的usr指令设置的用户名和用户组都是www,而log目录的用户名和组都是root,那么日志文件将无法被创建。
接着让用户在正常情况下使用一段时间这个配置了日志的系统,就能得到大量访问数据,以便于进行下一步的日志分析工作。
数据分析WebLog Expert:
WebLog Expert:一个强大的日志分析工具(PS:只能精确到小时,无法精确到分钟)
WebLog Expert能够分析网站的流量记录,将原始的流量记录分析出Activity statistics,Acdess statistics,Information about visitor,Referrers、Information about errors等基本而重要的流量信息,帮助测试人员了解网站的使用状况,另外它同时支持IIS和Apache日志,这也是选用该软件的原因之一。
由于近期并没有合适的项目实战,所以此部分并未有成果展示,这里附上简单的 工具 截图及官网上Report的示例图,感兴趣的同学可以查看下,十分好用且强大
官网: https://www.weblogexpert.com/
工具:
报告例图:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
RESTful Web Services Cookbook
Subbu Allamaraju / Yahoo Press / 2010-3-11 / USD 39.99
While the REST design philosophy has captured the imagination of web and enterprise developers alike, using this approach to develop real web services is no picnic. This cookbook includes more than 10......一起来看看 《RESTful Web Services Cookbook》 这本书的介绍吧!