
本系列文章md笔记(已分享)主要讨论性能测试相关知识。入门阶段:认识性能测试分类-(负载测试、压力测试、并发测试、稳定性测试),常用性能测试指标-(吞吐量、并发数、响应时间、点击数...),性能测试工具选择。性能脚本:1. LoadRunner介绍,2. 脚本录制、运行、参数化,3. 关联、检查点、事务、集合点。性能场景:1. 场景分类、场景设计、场景运行策略,2. 资源监控、SLA、IP Wizard应用。性能分析:1. 摘要报告、事务图表、图表合并,2. 交叉结果、拐点分析、Web项目资源分析。
全套笔记和代码自取移步gitee仓库: gitee仓库获取完整文档和代码
感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~
共 5 章,25 子模块


性能测试工具-LoadRunner
学习目标
- 1. 理解基于VuGen的脚本录制
- 2. 掌握参数化的使用方法
- 3. 掌握关联的使用方法
- 4. 掌握检查点的使用方法
- 5. 掌握事务的使用方法
- 6. 掌握集合点的应用
复制代码 VuGen操作
一、VuGen介绍
VuGen(Virtual User Generator)录制客户端和服务器之间的相关交互活动,它将自动生成相关模拟 实际情况的API(Application Programming Interface)函数。- 提示:
- 1. LR录制脚本功能由于兼容性问题,非常不好使,所以我们平时在工作中也不建议使用录制的方式;
- 2. 由于兼容性问题和录制会产生多余的操作,因此一般都是手写脚本;
- 3. 为了更好的学习VuGen,我们基于LR11自带的订票系统为案例,练习使用VuGen。
复制代码 案例1
- 需求:1. 录制机票网站的登录、退出脚本
- 使用:
- 1. 启动网站服务程序
- 2. 访问地址:http://127.0.0.1:1080/WebTours/
- 3. 登录账户:用户名:jojo 密码:bean
复制代码 【案例】-启动服务程序
 - 位置:开始菜单 -> HP LoadRunner -> Samples -> Web -> Start Web Server
- 提示:WebTours项目默认使用1080端口,如果启动失败,看是否端口被占用或者是否有权限;
复制代码
启动成功界面
二、案例1-实施步骤分析
- 1. 启动VuGen
- 2. 创建脚本
- 3. 选择录制协议 Web(HTTP/HTML)【重要】
- 4. 录制设置
- 5. 脚本录制
- 6. 运行脚本
复制代码 2.1 启动VuGen
方式一:直接运行VuGen图标启动【推荐】
开始菜单 -> HP LoadRunner -> Applications -> Virtual User Generator 
方式二:通过LoadRunner管理器启动
开始菜单 -> HP LoadRunner -> LoadRunner


点击:Create/Edit Scripts
2.2 创建脚本
 - 1. 菜单栏(File) -> New 快捷键(Ctrl + N)
- 2. 常用工具栏 -> 第一个图标新建
- 3. Start Page:点击快捷创建脚本图标(new Script)【推荐】
复制代码 2.3 选择协议
 - 1. New Single Protocol Script:单一协议
- 2. Popular Protocols:主流协议
- 3. Web(HTTP/HTML):HTTP协议【选择】
复制代码 2.4 录制设置
 - 1. Application type:Internet Applications【选择】(Internet Applications:HTTP协议使用)
- 2. Program to record:选择浏览器
- 1). IE8:(提示:64位操作系统必须选择32位IE8!)【选择】
- 2). 火狐浏览器v24版本;
- 3. URL Address:http://127.0.0.1:1080/WebTours/(项目网址)
- 4. Working directory:工作目录(默认即可)
- 5. Record into Action:录制脚本存放的计划名
- 1). vuser_init:首先执行;迭代运行时候,只会运行一次
- 2). Action:可迭代运行、可新增【选择】
- 3). vuser_end:最后执行;迭代运行时候,只会运行一次
- 6. 点击OK -> 开始录制
复制代码 2.5 脚本录制
 - 1. Recording...(xxx events):录制事件
- 2. 用户名:jojo 密码:bean
- 3. 点击Login
- 4. 点击Sign Off退出登录
- 5. 停止录制
- 6. 生成脚本
复制代码 退出登录

停止录制

生成脚本

2.6 运行(回放)脚本
验证录制脚本是否能正常运行
查看回放脚本的运行结果
 - 菜单(View) -> Test Results...
复制代码 三、总结
- 1. 启动VuGen方式
- 2. 录制HTTP项目协议
- 3. 录制设置各选项含义
- 1). Application type
- 2). Program to record
- 3). URL Address
- 4). Working directory
- 5). Record into Action
- 4. 如何运行脚本
- 5. 如何查看运行脚本的结果
复制代码 VuGen-扩展(录制、回放)
目标
- 1. 了解录制模式和脚本类型
- 2. 了解 Run-time Settings(运行时设置)
复制代码 一、录制选项-扩展

1.1 录制设置Options选项

- HTML-based script: 所有请求放到一个函数内(这里所有请求是指,每步操作所产生的请求)
- URL-based script: 每个请求放到一个函数
提示:- 1). 基于浏览器的应用程序推荐使用 HTML-based script
- 2). 不是基于浏览器的应用程序推荐使用 URL-based script
- 3). 基于浏览器的应用程序中使用了 HTTPS 安全协议,使用 URL-based script 方式录制
复制代码 1.2 HTML Advanced选项
 - 1. web_submit_form: 依赖上下文才能提交。
- 2. web_submit_data: 不依赖上下文,每个函数都指定了具体的 URL 地址,可以直接提交成功。【推荐】
- 提示:没有特殊的场景需求,推荐使用:web_submit_data
复制代码 二、运行设置
Run-time Settings
(菜单-Vuser -> Run-time Settings) 快捷键:F4
2.1 Run-time Settings
- 1. Run Logic 脚本运行迭代次数
- 2. Think Time 运行时思考时间处理方式
复制代码 1. RunLogic 迭代次数
 - 提示:
- 1. 迭代就是脚本要执行的次数
- 2. Init 与 End 由于只会运行一次,迭代次数设置不会生效
复制代码 2. Think Time 思考时间
 - 提示:
- 1. Ignore think time 默认(忽略思考时间)
- 2. Replay think time (回放思考时间)
- 1). As recorded (录制多少秒,就等待多少秒)
- 2). MuItiply recorded think time by (录制时间的倍数)
- 3). Use random percentage of recorded think time
- ( Min(录制时间的最小百分比) Max(录制时间的最大百分比))
- 4). Limit think time to(限制最高时间)
复制代码 2.2 常用函数
- 1. lr_output_message()
- 2. lr_think_time()
复制代码 1) 函数 lr_output_message()
- 输出到运行日志 如:lr_output_message("hello Action");
- 参数:要输出的文本信息
复制代码 2) lr_think_time()
- 思考时间 最大可能模仿用户真实操作 如:lr_think_time(4);
- 参数:停顿多少秒
复制代码 练习- 1. 输出Action被执行10次,使用迭代次数完成;
- 2. 输出Action1被执行暂停3秒后,输出Action2被执行;
复制代码 练习脚本- Action()
- {
- lr_output_message("Action1被执行");
- lr_think_time(3);
- lr_output_message("Action2被执行");
- return 0;
- }
复制代码 2.3 扩展 编译
 - C语言属于高级语言,不能直接被计算机识别,需要进行编译成计算机可执行语言,在编译的时候如果脚本语法有错,会直接提示。
- 使用:点击编译图标或使用快捷键:Shift + F5
复制代码 提示:- 编译提示:No errors detected 代表通过;
复制代码 VuGen-手动编写脚本
目标
- 1. 掌握C语言的注释方法
- 2. 掌握基于LR手动编辑脚本的方法
复制代码 首先科普下C语言中的注释;- 1. //:单行注释 如://登录
- 2. /**/:多行注释 如:/*多行 注释*/
- 提示:
- 1). Ctrl + Alt + C 为单行注释快捷键;
- 2). Ctrl + Alt + U 为取消单行注释快捷键;
复制代码 一、手动编写脚本
1.1 为什么要手写脚本
- 避免LR由于兼容性导致录制异常或失败;
- 手写脚本无冗余代码,更有利于脚本的增强(插入事务、参数化)和维护
1.2 手动编写脚本使用编写语言
提示:- 1. LoadRunner中虽然默认是使用C语言录制/编写脚本,但我们无需专门去学C语言;
- 2. 只需注意下基础语法和掌握LR中常用的几个请求函数的用法就可以编写常用的脚本;
复制代码 1.3 脚本请求 函数
- web_url()
- web_submit_data()
- web_custom_request()
提示:- 1. web_url:GET请求使用
- 2. web_submit_data:GET、POST请求
- 3. web_custom_request:定制请求(GET\POST\PUT\DELETE)等,接口请求使用此函数
复制代码 1.3.1 web_url() 函数【重点】
只能做GET请求;
语法:- web_url("request name","URL=http://***",LAST);
- 1). request name:标记请求名称,比如:首页
- 2). URL=http://xxx:URL=为固定格式;http://xxx为GET请求地址
- 3). LAST结束标志;
复制代码 1.3.2 web_submit_data()函数【重点】
默认设置是POST请求;也可以做GET请求。
语法:- web_submit_data(StepName, Action=http://xxx, <List of Attributes>,
- ITEMDATA,<List of data>, LAST);
- 1). StepName:标记请求名称, 比如:登录
- 2). Action=http://xxx:Action=为固定格式;http://xxx:为提交地址
- 3). List of Attributes:其他属性 如:"Method=POST"
- 4). List of data:其他参数 如:"username=jojo"
- 5). LAST:结束符
复制代码 提示:- 1. POST提交参数比较多,但我们不需用一个个记,使用插入函数方法,在函数对话框内输入即可;
- 2. 录制HTML页面时,Mode推荐使用HTML;
复制代码 1.3.3 web_custom_request() 函数【掌握】
自定义请求方法(GET/POST/PUT/DELETE),用于实现接口测试。
语法:- web_custom_request(RequestName, <List of Attributes>,LAST);
- 1). RequestName:请求名称
- 2). List of Attributes:属性列表,如:"Method=POST"
- 3). LAST:结束符
复制代码 提示:练习未完待续, 同学们请等待下一期
全套笔记和代码自取移步gitee仓库: gitee仓库获取完整文档和代码
感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |