loadrunner测试http协议行尾

2011-08-19  戴华荣 

在做关联的时候我想关联从某个位置开始直到http协议行的结束,比如我想查看服务器返回值中的Server的值。

  使用web_reg_save_param函数,左边界为"Server:",右边界我假设为“\n”

 以访问百度做试验,脚本如下:

  1. Action()  
  2. {     
  3.     web_reg_save_param("servers",  
  4.         "LB=Server:",  
  5.         "RB=\n",  
  6.         "Ord=All",  
  7.         "NotFound=WARNING",  
  8.         "Search=Headers",  
  9.         LAST);  
  10.   
  11.   
  12.     web_url("www.baidu.com",   
  13.         "URL=http://www.baidu.com/",   
  14.         "Resource=0",   
  15.         "RecContentType=text/html",   
  16.         "Referer=",   
  17.         "Snapshot=t1.inf",   
  18.         "Mode=HTML",   
  19.         EXTRARES,   
  20.         "Url=/img/i-1.0.0.png", ENDITEM,   
  21.         "Url=/img/bg-1.0.0.gif", ENDITEM,   
  22.         "Url=/js/bdsug.js?v=1.0.3.0", ENDITEM,   
  23.         "Url=/favicon.ico", "Referer=", ENDITEM,   
  24.         LAST);  
  25.   
  26.     return 0;  
  27. }  


跑出来结果如下:


从上图中可以看出http协议行尾是有"\r \n"组成的。把右边界改为”\r \n“就能跑出想要的结果。

备忘:

1、  HTTP指令由多行组成,以一个空行结束;

2、  HTTP指令行尾是有\r \n 组成

3、  Connection: Keep-Alive              告知服务器处理完此条指令后不要断开连接(默认情况下,服务器处理一条指令后,立即断开连接);

4、  如果出现错误的指令,即使有上述的命令行,服务器也会自动断开连接。

下面mark下\r \n的区别。

'\r'是回车,'\n'是换行,前者使光标到行首,后者使光标下移一格。


在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 


于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。 


这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。 


后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。 


Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。 


503°/5012 人阅读/2 条评论 发表评论

小窝  2011-08-30

同步至官方微博


付民  2011-08-30

不错.....


登录 后发表评论