【测试运维】性能测试经验文档总结第3篇:VuGen详解(已分享,附代码)
本系列文章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 运行(回放)脚本
验证录制脚本是否能正常运行
1. 点击 Run 按钮
2. 快捷键:F5键查看回放脚本的运行结果
菜单(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 手动编写脚本使用编写语言
[*]JAVA
[*]C语言【推荐】
提示:
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:结束符提示:
一般做接口压测时使用;练习
手动编写 iWebShop 的登录脚本;未完待续, 同学们请等待下一期
全套笔记和代码自取移步gitee仓库: gitee仓库获取完整文档和代码
感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~
来源:https://www.cnblogs.com/yinuo112/p/18018294
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页:
[1]