热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

测试脚本的录制和修正

一、录制脚本测试脚本的录制过程可以参考下面这位仁兄的博客,写的很是详细:http:www.cnblogs.comchengtchp5965656.html二、修正脚本使用

一、录制脚本

  测试脚本的录制过程可以参考下面这位仁兄的博客,写的很是详细:

  http://www.cnblogs.com/chengtch/p/5965656.html

二、修正脚本

  使用VUGen录制好脚本后,还需要对脚本进行调试和修改才能保证脚本的正确性。另外,为了方便Analysis对测试结果得分析,还需要在录制好的脚本中修正一些内容。

  一般来说,对脚本的修正包括:参数化处理,关联,插入事务,增加检查点等。前两者后面学习过程中再做补充,先说后面两点。

1、插入事务

  在LoadRunner中,Analysis应用会针对事务(Transaction)对Response Time进行统计。例如,脚本中有个“查询”操作,为了明确知道“查询”这一操作的响应时间,我们就可以把“查询”这一操作当做一个事务来处理,在开始查询之前和查询结束后插入事务标记,这样LR在运行脚本到开始点时就会计时,直到终止点时结束计时,该事务的运行时间就会在Analysis的结果中体现出来。

  插入事务可通过菜单栏和工具条来插入,也可以直接在脚本中增加代码来实现。LR中标识事务开始和结束的函数是:

lr_start_transaction("写信");
lr_end_transaction("写信");

  需要注意的是事务的名称最好有意义,能够清楚地说明该事务完成的动作。

  通过脚菜单栏和工具条标识事务的操作如下:

   

2、插入集合点

  插入集合点是为了衡量在加重负载的情况下服务器的性能情况。在测试计划中可能要求测试系统能够同时承受1000个人同时提交数据,在LR中,可以在提交数据操作前加入集合点,这样当虚拟用户运行到提交数据的集合点时,LR会检查同时有多少个用户运行到了集合点,如果不到1000人,LR就会命令已经到达集合点的用户等待,直到达到1000人时,LR会命令1000人同时去提交数据。

  可以直接在脚本中插入代码:lr_rendezvous("提交");也可以点击菜单栏的Insert选择插入:

  

3、插入函数

  VuGen中可以使用C语言中比较标准的函数和数据类型,语法和C语言相同。比如控制脚本流程:if(){}else{},for(),while{}......,也会用到一些字符串函数,像:比较两个字符串的strcmp(),拼接两个字符串的strcat()函数,复制字符串的strcpy()函数等。

4、插入Text/Image检查点

  在进行压力测试时,为了验证Web服务器返回的网页是否正确,VuGen允许插入Text/Image检查点,这些检查点验证网页上是否存在指定的Text或Image,还可以测试在比较大的压力测试环境中,被测网站的功能是否保持正确。

  录制过程中,添加检查点的方法是:

  (1)选中需要检查的文本内容;

  (2)单击录制工具条上的“插入文本检查点”的按钮。

  

  

  

如果是在录制完成后添加,首先要切换到TreeView视图,然后从树型菜单中选中需要插入检查的一项,然后单击鼠标右键,选中将检查点插入到该操作的执行前或执行后。

  插入成功后脚本中会出现下面代码:web_find("web_find","What=恭喜",LAST);

5、设置Think-time

  Think Time,一般被称为是思考时间,也可以称作休眠时间,从业务的角度来说,该时间指的是用户在进行操作时,每个请求之前的间隔时间。从自动化测试实现的角度来说,要真实的模拟用户操作,就必须在测试脚本中让各个操作之间等待一段时间。体现在脚本上,就是在脚本的操作之间放置一个Think的函数,使得脚本在执行两操作之间等待一段时间。

  但是,如何才能给定一个合适的Think Time呢?

  其实,思考时间和迭代次数,并发用户数和吞吐量之间存在着一定的关系。这里先给出个计算思考时间的一般方法:

  (1)首先计算出系统的并发用户数;

  (2)统计出系统的平均吞吐量;

  (3)统计出平均每用户发出的请求数量;

  (4)根据公式计算出思考时间。

  这里给出两个公式:

  (1)吞吐量的计算公式:F=VU * R / T,其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间;这是在没有遇到性能瓶颈的时候,由于吞吐量与虚拟用户数之间存在一定的联系,所以可以使用该公式来计算系统的吞吐量。

  (2)思考时间的计算公式:R = T / TS

  上面两个公式变形后可以看出,F和VU成正比,和TS成反比。

  最后,设置思考时间只需要在脚本中相应的位置插入代码:lr_think_time(s);  


推荐阅读
  • 优雅地记录API调用时长
    本文旨在探讨如何高效且优雅地记录API接口的调用时长,通过实际案例和代码示例,帮助开发者理解并实施这一技术,提高系统的可观测性和调试效率。 ... [详细]
  • 本文介绍了一个使用Spring框架和Quartz调度器实现每周定时调用Web服务获取数据的小项目。通过详细配置Spring XML文件,展示了如何设置定时任务以及解决可能遇到的自动注入问题。 ... [详细]
  • 前端技术分享——利用Canvas绘制鼠标轨迹
    作为一名前端开发者,我已经积累了Vue、React、正则表达式、算法以及小程序等方面的技能,但Canvas一直是我的盲区。因此,我在2018年为自己设定了一个新的学习目标:掌握Canvas,特别是如何使用它来创建CSS3难以实现的动态效果。 ... [详细]
  • 利用Cookie实现用户登录状态的持久化
    本文探讨了如何使用Cookie技术在Web应用中实现用户登录状态的持久化,包括Cookie的基本概念、优势及主要操作方法,并通过一个简单的Java Web项目示例展示了具体实现过程。 ... [详细]
  • 本文详细介绍了跨站脚本攻击(XSS)的基本概念、工作原理,并通过实际案例演示如何构建XSS漏洞的测试环境,以及探讨了XSS攻击的不同形式和防御策略。 ... [详细]
  • 本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ... [详细]
  • Android 中的布局方式之线性布局
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • HTML:  将文件拖拽到此区域 ... [详细]
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • 本文介绍了两个重要的Node.js库——cache-content-type和mime-types,它们在处理HTTP响应头时非常有用。cache-content-type是基于mime-types构建的,并且实现了缓存机制以提高性能。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • c语言二元插值,二维线性插值c语言
    c语言二元插值,二维线性插值c语言 ... [详细]
  • 本文提供了一个使用C语言实现的顺序表区间元素删除功能的完整代码示例。该程序首先初始化一个顺序表,然后根据用户输入的数据进行插入操作,最后根据指定的区间范围删除相应的元素,并输出最终的顺序表。 ... [详细]
author-avatar
为徐嘉伟丷默哀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有