3.LR术语和关联等

一、LR术语

事务:一个或一系列操作

集合点:对应于真实用户中的并发点。LR通过集合点实现了真正意义的并发。集合点在虚拟用户脚本中对应lr_rendezous(const char* rendezvous_name)当执行到该函数时会按照场景的并发策略来执行

二、LR录制相关知识点

LR自带的例子的用户名和密码jojo/bean

回放脚本 Run的时候可以设置静态的和动态的,动态的在运行时 会高亮标注运行到哪一行 ,如图所示:

脚本录制的基本原则:
1、充分考虑脚本的执行效率---脚本在修改的过程中不要增加过多内容,尤其是不能降低其效率,例如尽量不要增加循环、检查等操作,除非这些操作是必须的
2、录制重要的用户业务--要录制常用的、使用频率较高的业务
3、选择你所需要的进行录制
如果某些操作对于用户所关注的事务没有什么影响,那么可以不进行录制
*4、录制前对参数进行正确的配置

三、HTML和URL based script介绍

1、HTML based script:可以为每个用户请求生成单独的函数
2、URL based script:可以捕获所有作为用户操作的结果发送到服务器的HTTP请求,然后一条条记录下来。它甚至可以捕获非HTML应用程序,比如小程序和非浏览器应用程序
3、HTML这种录制方式录制出来的脚本直观,易于理解和维护。而URL生成的脚本看起来比较长,比较多

选择录制方式的原则:

1、基于浏览器的应用程序推荐使用HTML-based Script
2、不是基于浏览器的应用程序推荐使用URL-based Script
3、如果基于浏览器的应用程序中包含了JavaScript 并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-based方式录制。
4、基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-based方式录制
5、对于初学者,如果HTML方式录制不成功可以换成URL方式录制

 HTML based script 设置介绍:
1、用来描述用户行为的脚本。直接创建的URL(web_url)、表单提交(web_submit_form)、链接(web_link)和图像(web_image)等函数
2、仅包含明确的URL脚本。这种脚本中,所有的链接、图像请求和URL操作都被录制为web_url函数,而表单提交则被录制为web_submit_data函数 

四、关联介绍:

1、LR录制的脚本只是忠实记录了所有从客户端发送到服务器端的数据,并在脚本回放的时候按照录制时的顺序将录制下来的数据重新发送出去
2、但是,实际上许多的系统都是采用SessionID或SeqID等方法来标识不同的任务和数据宝,应用在每次运行时发送的数据并不完全相同。
3、为了让脚本能够支持测试的需求,就不许要用到某种机制对脚本录制的数据进行处理了。
总之:通过关联可以在测试中保持动态值

关联的目的:
1、简化或优化代码
例如,如果依次执行一系列的相关查询,代码可能会变得很长。为了减小代码的大小,可以嵌套查询,但这样会失去准确性,而且代码会变得复杂而难以理解。通过关联语句,不需要嵌套就可以链接查询

2、用于动态数据
应用程序和网站按当前日期和时间标识会话。如果尝试重播脚本,该操作将会失败,因为当前时间与录制时间不同。通过关联数据可以保存动态数据,并且在整个方案运行过程中使用这些数据

 3、容纳唯一数据记录
某些应用数据(例如数据库)要求使用唯一的值。录制期间唯一的值在脚本执行时将不再唯一。例如数据库中的UUID
大多数情况下,通过关联查询功能可以解决该问题,关联查询将一个语句的结果用作另一个语句的输入
 
 一般的关联步骤:
1、从服务器返回的数据选取需要关联的数据
2、将该数据存入脚本的一个参数中
3、将脚本中需要使用该数据的地方用参数来替换

方法:
对于web来说,一般会用一个hidden的field存放
 
模拟该场景例子如下,设置webtours网站 勾选了第3项

常见的需要关联的情景:

1、登录操作

2、先查后修改,先查后删除

3、并发控制:防止两个用户同时修改或同时删除一条记录

备注: F1查看文档 例如查看函数  lr_think_time()

原文地址:https://www.cnblogs.com/xiaobai-2017/p/10709343.html