一、对事务的理解 在LR中什么是事务,事务是记录从客户端到服务器端,服务器端返回到客户端应答的时间,可以反映出一个操作所用的时间。那么事务的时间主要是由响应时间、事务自身时间、浪费时间(wasted time)组成。 二、事务响应时间的组成 •网络时间(web server和APP server时间) •服务器处理时间(web服务器、app服务器、数据库服务器的处理时间) •网络延迟时间(前端Network、后端服务) 前端network延迟时间包含: •DNS Lookup:DNS域名解析服务,是由解析器以及域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,这样才能上网。其实,域名的最终指向是IP。 •Time to connect •Time to first buffer:第一次缓冲时间,成功收到从Web服务器返回的第一次缓冲之前的这一段时间内的每个页面组件的相关服务器/网路时间 •Network time •Download time •SSL handshake:SSL握手协议,建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 •FTP authentication •Client time •Error time •网络延迟 后端服务延迟时间主要有Web server、APP server、Database server组成: •Web server: 1.servlet time 2.method time 3.静态动态压缩 •APP server 1.EJB time 2.Methond time 3.JNDI Lookup •Database server 1.JDBC time 2.Connect time 3.Execute time 以上事务响应时间摘抄自《性能测试进阶指南LR11》,其中网络延迟时间自己的理解,前端应该是用户在进行操作,如输入了URL地址从浏览器到网络的时间。 三、事务自身时间(插入事务即使事务中没有操作,也需要时间) 事务的时间一般在1/100秒左右,因此可以忽略 四、浪费时间(Wasted Time) 浪费时间是事务中应该扣除的由于其他原因导致的时间浪费,如:执行一个计算密钥的程序,会浪费很多时间,这时候需要通过计算出wasted time来过滤事务时间 五、事务函数 •lr_start_transaction("事务名称"):事务开始 •lr_end_transaction("事务名称","事务状态"):事务结束,结束状态LR_AUTO,LR_PASS,LR_FAIL,LR_STOP •lr_start_timer():与lr_end_timer()联合使用可以得到程序运行的时间 •lr_end_timer():与lr_start_timer()联合使用可以得到程序运行的时间 •lr_get_transaction_duration(const char *transaction):返回事件执行到此所用的时间 例子: lr_start_transaction("事务名称") timer=lr_start_timer() //所需计算时间的程序 (略) trans_time=lr_get_transaction_duration(”事务名称");//返回事件执行到此处所用的时间 wasted_timer=lr_end_timer(timer);// lr_start_timer() 执行到 lr_start_end() 所用时间 lr_end_transaction("事务名称","事务状态") 六、手工事务 对于自动结束状态的事务来说(LR_AUTO),只要服务器给用户返回了信息,就会认为事务是通过的。因此需要手工事务来进行判断 例:如用户注册,已经注册过的用户通过LR_AUTO来进行判断,最后依然会显示事务成功 可以用web_reg_find()函数来对登陆失败或者登陆成功以后页面进行文字的查找,对事务进行判断 Login { web_reg_find("Search=Body","SaveCount=regst","Text=登陆成功‘,LAST); lr_start_transaction("regstnewuser"); //录制的登陆代码 (略) if(aton(lr_eval_string("{regst}"))>=1) lr_end_transaction("regstnewuser",LR_PASS); else lr_end_transaction("regstnewuser",LR_FAIL); }
时间: 2024-10-16 20:56:13