loadrunner工作原理

性能测试只关注底层数据,不关注业务,不关注客户端动作。所以,脚本运行正确不一定业务就正确(业务是否正确,如果是查询,我们可以通过检查点来判断;如果是增删改操作,可以看通过事务数和查询数据库数据数据增删改的数量做比对来判断),脚本运行正确只能说明服务器做了正确的响应,比如请求的文件不存在,则服务器返回了404,loadrunner认为这是正确的处理,但是业务上是不正确的。loadrunner只监控客户端和服务器端之间发送了什么数据(前提是要知道通信协议,能解码通信内容),不关注行为(即发送方式,如何发送)。loadrunner有协议探测功能,最后一个图标就是【协议探测】。

另外,不能解析出东西和解析出乱码是不同的,前者说明协议不对,后者说明协议正确,可能是字符集问题,对应到loadrunner中,前者就是无脚本内容;后者是有脚本内容,但是是乱码。

举例:比如下载图片,用loadrunner登录到页面,在图片上右键→另存为…,loadrunner不能完成下载图片这个动作,因为loadrunner只关注数据传递,而不关注动作(“右键—另存为”等动作)。

loadrunner和qtp对比

qtp是hp系列中做功能自动化的工具,它关注的是业务,loadrunner关注请求和响应(即底层数据通信);

响应和业务没有关系,做出了正确响应,但是业务不一定正确,如错误的登录信息,服务器给出正确的响应。

loadrunner使用流程

1.录制脚本

  划分action,且改action名字

  备注:本人只在以前学习的时候用过录制,录制受环境影响,有时录制不到脚本或者录制过程中卡死,所以,在实际工作中,都是直接写脚本,不用loadrunner的录制功能,直接写loadrunner脚本也不是大家想象中的那么难,还是有些偷懒的小技巧的,具体方式参考:录毛线脚本,直接抓包手写最简洁的LoadRunner性能测试脚本,但是,为了帮助想学录制的朋友,后续我们还是会介绍如何录制脚本。

2.脚本优化

  a.为每个action插入注释,这样增加脚本的可读性以及易维护性;

  b.添加登录操作集合点;

  c.添加事务点;

  d.修改思考时间;

  e.保存脚本,回放,设置关联函数的置换;

  f.根据实际情况进行参数化,如对登录用户名参数;

3.场景执行

4.结果收集

5.结果分析

LoadRunner【第二篇】原理及使用流程的更多相关文章

  1. 第二篇:git创建流程

    1.创建组织 2.创建 3.点击项目 创建完: 4.选择管理——>选择公钥——>添加个人公钥: 5.怎样生成公钥 5.1.如何生成ssh公钥 你可以按如下命令来生成 sshkey: ssh ...

  2. RobotFrameWork+APPIUM实现对安卓APK的自动化测试----第二篇【原理】

    http://blog.csdn.net/deadgrape/article/details/50574459 接着上一篇,我们开始聊聊APPIUM的框架和运行模式.废话不多说直接上图. 1.首先自动 ...

  3. 第2章 rsync算法原理和工作流程分析

    本文通过示例详细分析rsync算法原理和rsync的工作流程,是对rsync官方技术报告和官方推荐文章的解释. 以下是本文的姊妹篇: 1.rsync(一):基本命令和用法 2.rsync(二):ino ...

  4. rsync算法原理和工作流程分析

    本文通过示例详细分析rsync算法原理和rsync的工作流程,是对rsync官方技术报告和官方推荐文章的解释.本文不会介绍如何使用rsync命令(见rsync基本用法),而是详细解释它如何实现高效的增 ...

  5. 并发编程之J.U.C的第二篇

    并发编程之J.U.C的第二篇 3.2 StampedLock 4. Semaphore Semaphore原理 5. CountdownLatch 6. CyclicBarrier 7.线程安全集合类 ...

  6. [翻译]Go与C#的比较,第二篇:垃圾回收

    Go vs C#, part 2: Garbage Collection | by Alex Yakunin | ServiceTitan - Titan Tech | Medium 目录 译者注 什 ...

  7. Python开发【第二篇】:初识Python

    Python开发[第二篇]:初识Python   Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...

  8. iOS开发Swift篇—(六)流程控制

    iOS开发Swift篇—(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这 ...

  9. 第二篇 :微信公众平台开发实战Java版之开启开发者模式,接入微信公众平台开发

    第一部分:微信公众号对接的基本介绍 一.填写服务器配置信息的介绍 登录微信公众平台官网后,进入到公众平台后台管理页面. 选择 公众号基本设置->基本配置 ,点击“修改配置”按钮,填写服务器地址( ...

  10. IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm(转载)

    IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm 自从本系列发布之后,收到了很多的朋友的回复!非常感谢,同时很多朋友问到了一些问题,有些问 ...

随机推荐

  1. Android 性能优化之减少UI过度绘制

    什么是过度绘制(OverDraw) 在多层次重叠的UI结构里面,如果不可见的UI也在做绘制的操作,会导致某些像素区域被绘制了多次.这样就会浪费大量的CPU以及GPU资源.过度绘制最直观的影响就是会导致 ...

  2. CGI 、FastCGI、PHP-CGI、PHP-FPM 定义以及与nginx的应用关系

    CGI common gateway interface,简称cgi,简而言之就是一个接口,一种协议.它的作用就是帮助服务器与语言通信. 这里以nginx和php为例,因为nginx和php的语言不通 ...

  3. Oracle 12c用户和安全管理

    前言: Oracle 12c的多租户(multitenant)环境与SQL Server的架构非常相似,CDB$ROOT类似于master.PDB$SEED类似于model.各个pluggable d ...

  4. Linux内存描述之高端内存--Linux内存管理(五)

    1. 内核空间和用户空间 过去,CPU的地址总线只有32位, 32的地址总线无论是从逻辑上还是从物理上都只能描述4G的地址空间(232=4Gbit),在物理上理论上最多拥有4G内存(除了IO地址空间, ...

  5. codeforces#410C Mike and gcd problem

    题目:Mike and gcd problem 题意:给一个序列a1到an ,如果gcd(a1,a2,...an)≠1,给一种操作,可以使ai和ai+1分别变为(ai+ai+1)和(ai-ai+1); ...

  6. DWH中增量数据的抽取

    1. Truncate-Load 全量加载 简单直观.不易出错,适合数据量不太大的操作 性能问题 2. Increamental-Load 只考虑新增.修改.删除的记录    良好的数据源设计(主要是 ...

  7. java-----理解java的三大特性之多态

    的java提高篇(四)-----理解的java的三大特性之多态 面向对象编程有三大特性:封装,继承,多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外 ...

  8. Django中的信号

    信号 Django 提供一个“信号分发器”,允许解耦的应用在框架的其它地方发生操作时会被通知到. 简单来说,信号允许特定的sender通知一组receiver某些操作已经发生. 这在多处代码和同一事件 ...

  9. docker其他参考资料

    https://yeasy.gitbooks.io/docker_practice/image/build.html https://blog.csdn.net/weixin_42596342/art ...

  10. 做自己的docker镜像(基于ubuntu:16.04)

    基于ubuntu:16.04 apt-get update -y apt-get install sudo -y 换源 sudo apt-get install vim sudo vim /etc/a ...