loadrunner测试http协议行尾

来源:互联网 发布:brew install node 编辑:程序博客网 时间:2024/04/30 11:03

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

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

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

Action(){web_reg_save_param("servers","LB=Server:","RB=\n","Ord=All","NotFound=WARNING","Search=Headers",LAST);web_url("www.baidu.com", "URL=http://www.baidu.com/", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf", "Mode=HTML", EXTRARES, "Url=/img/i-1.0.0.png", ENDITEM, "Url=/img/bg-1.0.0.gif", ENDITEM, "Url=/js/bdsug.js?v=1.0.3.0", ENDITEM, "Url=/favicon.ico", "Referer=", ENDITEM, LAST);return 0;}


跑出来结果如下:


从上图中可以看出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符号。 


参考文章:

http://javaeye-mao.iteye.com/blog/211354

原创粉丝点击