性能测试概念点分析与过程讲解(一)
1. 录制方式:
基本流程为:协议选择→设置录制选项→开始录制→插入命令→停止录制→回放验证
协议选择:根据程序框架决定,比如一般情况下,B/S架构的程序都会使用http协议,当然还有一些ftp协议等,C/S架构的程序则很可能会使用一些不常见的协议所以,协议选择这一步,最好和对于开发人员沟通好确定好。
设置录制选项:
1)、录制准备事项
Start recording 设置:
Application type:可选择需要录制的对象类型,Internet Applications(录制对象是一个网络应用,基于浏览器)、Win32 Applications(支持Win32的标准客户端)。
Program to record:设定需要录制的程序名,默认为IE,建议不要使用其他的三方的浏览器进行录制,以免出现不兼容,火狐低版本可以兼容,如果经常需要录制脚本,建议准备一下低版本的火狐浏览器,毕竟支持H5页面的浏览器不多。
URL Address:录制的地址,比如www.aicai.com。
Working directory:用来指定代码的工作目录,一般默认就好。
Record into Action:设置录制内容的存放位置,vuser_init、Action、vuser_end这里需要说明的是vuser_int/vuser_end只会初始化一次,也就是说,无论脚本循环几遍,每个虚拟用户只会在启动脚本和结束脚本时去分别执行vuser_int脚本和vuser_end脚本。真正执行循环的脚本则是主体action,因此看压力需求需要,一般的压力测试主体都会放在action,但是比如在压力主体前需要登入,但压力测试的业务又不是主要压测登录,则会将登入放在vuser_init里面。
2)、录制选项
Recording Options 设置:
Script:基于Web(HTTP/HTML)协议的Vuser脚本是使用C语言作为标准的。
Protocols:协议列表,一般在创建脚本时,会选择好录制脚本的协议,那么这时候的协议列表则是在选择好的协议之下所包含的各个协议。
Recording:录制选项用于设置Web(HTTP/HTML)使用的录制方式,HTML-based Script(以HTML操作为录制级别)、URL-based Script(以HTTP请求为录制级别)。
这里可以对这两种录制方式进行进一步的说明:
HTML-based script是默认的模式,该模式可以为每个用户操作生成单独的函数.URL-based script则可以捕获所有作为用户操作的结果发送到服务器的HTTP请求,然后一一记录下来.URL-based script模式甚至可以捕获非HTML应用程序,例如小程序和非浏览器应用程序. 因此,可以这样理解,HTML-bsed script 可以看做是基于动作的录制方式,每次操作一个总请求,然后总请求里面包含了该动作的所有请求,比如我们点击首页这个动作,该动作可能包含有很多图 片,css,js。等等请求,而这些请求都包含在一个请求提交里面。URL-based script 则可以看做是基于url请求的录制方式,这个模式下,每个操作中包含的所有请求会以http请求的方式独立发给服务器,也就是说一个点击首页的操作,可能 包含css,js,图片等30多个请求,那么这些请求都是按一些顺序单独发过去的,一个个异步加载。
使用HTML-based script录制的脚本直观,易于理解和维护,而基于URL-based script模式录制生成的脚本内容看起来会比较多,将HTML方式中的一个函数拆分成了很多独立的函数,但是这种脚本的可伸缩性更强,记录了更详细的用 户操作信息.所以一般有经验之后都会喜欢这种模式,而且这种模式下跟我们抓包抓到的数据是一一对应的。当然,具体怎么来选择用那种方式并没有强制性,可以 按自己的习惯来,但是有几种请求则必须使用URL-based script 模式。比如 存在ajax提交的业务操作。爱彩则大量使用了这种提交方式。
选择哪种模式应该根据实际需要来进行,下面是一些常见的参考原则:
1.基于浏览器的应用程序推荐使用HTML-based script
2.不是基于浏览器的应用程序推荐使用URL-based script
3.如果基于浏览器的应用程序中包含了java script,并且该脚本向服务器发送了请求,比如DataGrid的分页按钮等,推荐使用URL-based script;
4.基于浏览器的应用程序中使用了HTTPS安全协议,建议使用URL-based script方式录制.
Date Format Extension:将一些常见的编码格式进行转换,便于后期处理,可针对Body、Headers、Cookies、Query String四种数据段进行转码。这一块一般请求直接默认吧。
Port Mapping:提供了对端口映射的处理规则。
Correlation:打开脚本录制时的自动关联选项。
3)、 开始录制
当设置好录制选项后,单击OK按钮启动录制。
首先会看到Recording Bar,然后就会弹出IE并自动跳转到设定好的页面,接下来就是按正常操作流程对页面功能操作一遍了,而LR会把操作过程转换成一个个提交请求。
4)、 插入命令
在录制的过程中可以通过Recording Bar添加一些命令。如切分脚本、添加事务的开始点和结束点、添加集合点、添加注释 等等,根据需要,按需酌情添加,对脚本业务没有什么关系和影响。
5)、结束录制
录制结束后,单击Stop停止录制,客户端和服务器交互协议会被放在Generation Log内,VuGen随后会对协议交互进行分析,生成脚本。
转载至:(作者:owenhe 来源:http://www.cnblogs.com/7test/articles/4778743.html)
转载于:https://www.cnblogs.com/Grace7582/p/4808297.html
性能测试概念点分析与过程讲解(一)相关推荐
- 性能测试概念点分析与过程讲解(三)
6.1 参数化详解: 首先,我还是要巴拉巴拉一下参数化的概念和意义,什么叫做参数化:参数化,就是在我们录制好脚本,或者写好提交请求中那些被写死的值,但是这些值又会因为提交请求不同或者用户要求变化而做的 ...
- php管道的概念,管道线的概念定义及分析技巧的讲解
股票教程视频中对于趋势进行介绍的时候,总是会提到管道线,那究竟股票管道线是如何被定义的?它在实战中应该如何进行应用?如果您对于该形态还不了解的话,那今天就可以跟随赢家财富网的主编老师来了解. 一.概念 ...
- JAVA23种设计模式学习,源码+案例分析+类图讲解
本文对JAVA中23种设计模式进行了简单的讲解,幷加以实际案例进行辅助理解,每种模式都会举例说明,幷将源码开源至gitee和githbu上.JAVA目录下为源码,resources目录下的UML文件夹 ...
- NS3概念概述及first.cc讲解
NS3概念概述及first.cc讲解 文章转载自:漫天大雪 一.关键的抽象概念 1.1节点 在因特网术语中,任何一台连接到网络的计算设备被称为主机,亦称为终端. ns -3是一个网络模拟器,而非一个专 ...
- 基于ArcGIS:GIS空间分析复习-理论概念+案例分析
目录 01 第一章 1.1 GIS空间分析的概念 1.2 GIS空间分析的研究对象.研究目标 1.3 研究目标是:认知.解释.预报.调控. 1.4 道路拓宽案例分析 1.5 GIS空间分析的核心问题 ...
- 利用计算机解决问题过程中找出已知,用计算机解决问题的过程讲解.ppt
用计算机解决问题的过程讲解.ppt 第一章 揭开计算机解决问题的神秘面纱,第一节 计算机解决问题的过程,什么是程序,计算机的任何动作都是在执行人给它的指令.人们针对某一需要而为计算机编制的指令序列称为 ...
- 分析linux系统的运行性能,Linux系统的性能测试与性能分析
Linux系统的性能测试与性能分析 发表于:2012-12-03来源:一淘测试作者:若凌点击数: Linux系统的性能测试与性能分析1 性能测试简介 性能测试的过程就是找到系统瓶颈的过程. 性能测试( ...
- golang源码分析-启动过程概述
golang源码分析-启动过程概述 golang语言作为根据CSP模型实现的一种强类型的语言,本文主要就是通过简单的实例来分析一下golang语言的启动流程,为深入了解与学习做铺垫. golang代码 ...
- pd.merge 结果出现重复_COUNTIFS函数技巧之去重复值计数(思路分析,过程详解)...
各位读者朋友们大家好,今天给大家介绍COUNTIFS函数的技巧性用法一,去除重复值计数.何为去除重复值计数呢?简单来说,当我们的数据源中存在重复值时,而我们只想将重复值计算一次,来计算不重复的项目有多 ...
最新文章
- 汇编语言(五)之数组中正数和负数分离
- Spring MVC3 Hibernate CRUD示例应用程序
- python怎么读取pdf文件_Python解析并读取PDF文件内容的方法
- linux编译c++ 静态库,C/C++ 条件编译静态库
- 软件测试项目计划书总结,软件测试项目计划书.doc
- 创建variant二维数组
- java application程序_如何Java编写的application程序像exe一样方便shy;的运行
- Java中如何使用匿名内部类?
- day 5 名片管理系统-文件版
- angular新建组件_精美Angular后台管理模板分享-前后端分离(含所有代码)
- PS之PS 删除时出现无法完成请求,因为智能对象不能直接进行编辑。
- 测试方法论——数据驱动测试
- 整合ssh时 犯的愚蠢问题
- 6月13日木叶下向量
- 罗克韦尔自动化任命Susana Gonzalez为EMEA地区总裁
- wikioi1369 xth 砍树
- 搜索:多模态搜索算法实践【工业界:将其他模态(视频、音频)的信息降维到文本模态】【学术界:将所有模型信息映射到公共向量空间】
- distribute-list分发列表
- elementUI angular适合做H5吗
- 简析客户流失的原因及解决办法
热门文章
- python字符串出栈方法_Python 实现字符串反转的9种方法
- 一个内核调试函数的实现
- 在switch语句中使用字符串以及实现原理
- lisp 多边形象限_AutoLISP图程序设计.ppt
- python下面的代码_求下面python代码的差别。
- 【flink】flink Source Coordinator Thread already exists driving actions Source Coordinator. Existing
- 【Elasticsearch】关于 Analyzers 的一切,第一部分
- Elasticsearch】es memory locking requested for process but memory is not locked
- 【xshell】xshell 自动换行设置
- 【java】java原生序列化和Kryo序列化性能实例对比分析