`
ralphr
  • 浏览: 143018 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

LR中的Cookie、 Session、 Cache

阅读更多
【前景提要】在做性能测试时用LoadRunner自动录制角本时会出现记录Cookie的代码,在调整脚本要做关联而这通常必须要做关联的是一个叫作Session id的东东,而在Run脚本时又会有是否使用Cache的选项。让我对CookieSessionCache充满的疑问。只有了解它们的工作机制和不同,我们才能判断出它们对于性能测试的影响。于是乎就有了下面这篇文章了~~~

 

一、 中文译名

Ø        Cookie小饼干?偶用尽所有的方法都没有找到其中文译名,就连偶一直非常信任的金山词霸对其也只是一段解释而非译名。(如果哪位高人能译出,请一定要告知金山公司让他们去更新词库)

Ø        Session:会话

Ø        Cache:高速缓冲存储器

 

二、 工作机制

Ø        Cookie:采用的是客户端保存信息的方案。

Ø        Session:采用服务器端保存信息的方案。

Ø        Cache:利用缓存SRAM来“静态”的保存写入信息的方案。

如果上面的“专业”解释你还是不能明白,那我们就来“通俗”的解释它们吧!

 

        1Cookie客户端的机制就是用户访问站点时,Web服务器发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的Cookie。用户的浏览器在获得页面的同时还得到了这个Cookie,并且将它保存在用户硬盘上的某个文件夹中。

Cookie是一段文本信息,你可以在你的电脑硬盘中找到许多这种文件,它们通常存放在C:\Documents and Settings\用户名\Cookies(早于Win2000以前的系统则会存放在c:\windows\Cookies)。

那么Web服务器通过Cookie究竟写下了些什么呢?它们用有什么作用呢?

这些就要看Web服务器的code如何写的了,不过你可以不必担心,服务器在Cookie里写下的信息只是为了你下次访问该站点时节约时间或提供一些特定的服务(绝非病毒或是其它可疑滴东东)。而且某些信息数据是加密的(例如密码等),当然也可以通过设置浏览器让它不记录下Cookie

应用举例:一些要求用户登录的站点则可以通过Cookie来确定您是否已经登录过,这样您就不必每次都输入登录信息;一些站点的投票功能可以简单地利用Cookie作为布尔值,表示您的浏览器是否已经参与了投票,从而避免您重复投票。

 

2Session服务端的机制是将用户的请求信息放在服务器端来保存信息,服务器使用一种类似于散列表的结构来保存信息。当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识-称为session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用。

保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。由于cookie可以被人为的禁止,必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面。

这就好像是我们去某些商店去买东西,如果你已是该店的会员,那么商店会给你一张会员卡,下次你再次光顾这家店时只要出示你的会员卡就可以享受订制的服务了。

由于session只认id不认人,因此不同的浏览器,不同的窗口打开方式以及不同的cookie存储方式都会对它的识别产生影响,这时就容易出现了我们常说的session混乱了。

还是以上面会员店为例,如忘带会员卡或是会员卡上的照片已经是你好几年前的样子店员无法辨认,商店会重新给你办理一张会员卡。而此时其实你已经有两张会员卡了(session id)正好这两张卡的服务范围不一样(一张是普通卡,一张是VIP卡),当你再次去商店你任意的给了商店一张卡,这样你得到的服务有可能根本不是你想要的。

当然如果程序写的好是可以避免这种混乱的情况,有时还可以是跨应用程序的session共享。

 

3Cache“静态”机制跟比起以上两种方式就特殊一些。为什么说它是“静态”,是因为它是有程序写入到SRAM里的,除非是重新写入数据或关闭电源,否则写入的数据是会保持不变的。

由于CPU的存取数据速度比从内存和硬盘中存取数据的速度要快得多,从内存和硬盘中存取数据时会使CPU等待,影响计算机的速度。SRAM的存取速度比其它内存和硬盘都要快,所以它被用作电脑的高速缓存。

有了高速缓存,可以先把数据预写到其中,需要时直接从它读出,这就缩短了CPU的等待时间。高速缓存之所以能提高系统的速度是基于一种统计规律,主板上的控制系统会自动统计内存中哪些数据会被频繁的使用,就把这些数据存在高速缓存中,CPU要访问这些数据时,就会先到Cache中去找,从而提高整体的运行速度。

 

三、 生命周期区别

Ø        Cookie

如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。
  如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。有些论坛在你登录时有记住登录信息1个月这类的时间选择,这就是为Cookie设置了过期时间。这时我们就算关闭了浏览器,再次打开访问这个论坛时仍然会是在线状态不需要再次登录。

Ø        Session

Cookie不一样,用户关闭浏览器Session仍然保存在服务器端,只要程序发出指令去删除session,服务器会一直保留这个会话对象直到它处于非活动状态超过设定的间隔为止。

我们有时会误解当用户关闭浏览器时Session已经被删除,是由于大部分session机制都使用cookie来保存session id,而关闭浏览器后这个session id就消失了,再次连接到服务器时也就无法找到原来的session

Ø        Cache

由于Cache的机制我们很明显的可以看出,只有关闭电脑电源或是让程序重写Cache。不然这个Cache将会一直存在。

分享到:
评论

相关推荐

    LR中文文档 LR8.0 LR8.1 LR9.5

    【LR中文文档 LR8.0 LR8.1 LR9.5】是一套全面的负载测试工具LoadRunner的学习资源集合,包含了不同版本的LR资料,如LR8.0和LR8.1,以及一个稍后版本的LR9.5。LoadRunner是一款由HPE(惠普企业)开发的强大性能测试...

    lr中lr_save_string函数和itoa函数的使用

    lr_save_string 函数和 itoa 函数是 LoadRunner 中两个非常重要的函数,它们经常被一起使用以实现参数化。lr_save_string 函数用于将一个值保存到一个变量中,而 itoa 函数用于将整数类型转换成字符串类型。 lr_...

    LR产用函数的应用web_reg_save,lr_save_string,lr_eval_string等函数

    在Web应用中,许多数据如Session ID、Cookie值等是动态生成的,`web_reg_save_param`可以帮助我们捕获这些变化的数据。例如,当我们需要跟踪一个动态生成的请求ID时,可以设置此函数,指定正则表达式匹配规则,然后...

    LR中参数化连接数据库

    在LoadRunner(LR)性能测试过程中,参数化是一种重要的技术,它允许我们使用动态数据来模拟真实用户的行为,提高测试的准确性和覆盖率。在尝试从数据库中获取数据时,可能会遇到“data retriever failed to execute...

    LR中文教程加函数大全PDF

    这是LoadRunner中的核心部分,提供了关于LR函数的全面参考。LR函数用于构建和扩展脚本,模拟用户行为,与应用程序进行交互。这份文档可能包括了Action函数、Control Flow函数、Data Access函数、Error Handling函数...

    lr 函数大全之中文解释

    LR函数是LoadRunner中用于构建脚本的核心部分,它们帮助测试人员模拟真实的用户行为并记录、回放和分析系统响应。 1. **LR函数类型** LR函数分为VU(Virtual User)全局函数、行动(Action)函数和通用函数等几大...

    lr中flight的测试脚本

    《LR中Flight的测试脚本:深入理解性能测试的关键步骤》 LoadRunner是一款强大的性能测试工具,用于评估软件系统的性能和稳定性。在本篇中,我们将深入探讨一个名为“flight”的测试脚本,该脚本主要用于模拟用户在...

    php session_start()关于Cannot send session cache limiter – headers already sent错误解决方法

    说是已经有输出,用编辑器打,前面明明什么都没有,原来在使用AJAX的 时候,也出现过这种情况,后来,把这个PHP文件放到linux中打开,会发现,在文件的最前面,会出现“锘 ”这样的一个字符(引号内),把它去掉以后...

    LR.rar_LR分析法_LR文法_编译原理LR

    LR分析法是编译原理中的一个重要概念,用于解析程序设计语言的语法结构。LR分析法全称为“Left-to-Right, Leftmost Derivation”的分析方法,它基于自左向右扫描输入串,并按照最左推导的方式进行分析。在本资料"LR....

    lr中文帮助

    LR是Lightroom的缩写,Adobe Lightroom是一款广泛使用的专业级图像管理和后期处理软件,尤其在摄影爱好者和专业摄影师中非常流行。这个“lr中文帮助”压缩包包含了LR_11中文用户教程说明文档,旨在为不懂英文或者对...

    LR中使用Java Vuser测试Java类功能

    在LR(LoadRunner)性能测试工具中,使用Java Vuser测试Java类功能是一项常见的任务,这对于验证和优化Java应用程序的性能至关重要。以下是一篇关于如何在LR中利用Java Vuser进行此类测试的详细概述。 首先,理解...

    LR测试工具操作

    关联可以帮助脚本自动捕获和使用动态生成的值,比如在页面跳转过程中产生的session ID。正确设置关联能有效避免因动态数据变化导致的测试失败,确保测试结果的准确性。 #### 5. **运行测试** 当所有准备工作就绪后...

    LR8.1中文教程fdf版

    LR8.1中文教程是针对HP LoadRunner 8.1版本的一款详尽的学习资源,旨在帮助用户深入理解和熟练掌握这款强大的性能测试工具。LoadRunner是一款功能丰富的应用性能测试软件,常用于模拟大量并发用户,以检测系统在高...

    根据LR分析表构造LR分析器

    LR分析器是一种在编译器设计中用于解析程序语法的重要工具,主要应用于上下文无关语言。LR分析器的“L”代表自左至右扫描输入,“R”代表右most衍生树(Rightmost Derivation),而“分析表”则是LR分析器工作的核心...

    LR登录添加参数化

    - **关联**:如果登录过程中有验证码或者session ID等需要维持的会话信息,需要进行关联操作,确保每次登录都对应正确的会话。 ### 2. LR添加人员参数化 添加人员的过程也类似,可能涉及更复杂的表单填写。关键...

    LR中性能测试场景设

    在IT行业的性能测试领域,尤其是使用LoadRunner(LR)工具进行的性能测试中,场景设计是确保测试准确性和有效性的重要环节。本文将基于给定的标题“LR中性能测试场景设计”及其描述“LR中性能测试场景设,压力测试...

    LR参数表中select next row和update value on的设置

    ### LR参数表中select next row和update value on的设置详解 #### 一、引言 在LoadRunner(简称LR)的性能测试过程中,参数化是模拟真实用户行为的关键技术之一。通过对测试脚本中的变量进行参数化处理,可以使得...

    编译原理:LR分析程序

    在这个过程中,LR分析程序起着至关重要的作用。LR分析,全称为Left-to-Right, Rightmost Derivation Analysis,是一种自左向右扫描输入串并构造最右推导的语法分析方法。它在编译器设计中用于解析源代码,验证其语法...

Global site tag (gtag.js) - Google Analytics