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. Windchill基本业务对象-文档

    文档的类型: (1)WTDocumetManster :是文档的主要信息,一个文档只有一条记录:(2)WTDocument:是文档小版本记录,每一个文档小版本都有一条记录: 备注:(1)文档大版本记录 ...

  2. PHP技能树

  3. Django contenttypes 组件

    contenttypes组件 介绍 Django包含一个contenttypes应用程序(app),可以跟踪Django项目中安装的所有模型(Model),提供用于处理模型的高级通用接口. Conte ...

  4. linux上修改mysql登陆密码

    1. 修改MySQL的登录设置: # vi /etc/my.cnf     2. 在[mysqld]的段中加上一句:skip-grant-tables  例如: [mysqld] port       ...

  5. Enterprise architect 类图加时序图

    原文地址:https://segmentfault.com/a/1190000005639047#articleHeader2 新建一个Project 没什么好说的,“文件-新建项目”,然后选择保存位 ...

  6. c# 正则验证

    1.验证百分数 bool tempBool = Regex.IsMatch(str, @"[1-9]{0,1}[0-9](\\.[0-9])?%");

  7. c++11の条件变量

    一.条件变量的引入 std::condition_variable 解决了死锁并且控制的资源的访问顺序二避免不必要的等待.当互斥操作不够用而引入的.比如,线程可能需要等待某个条件为真才能继续执行,而一 ...

  8. web框架开发-Django模型层(2)-多表操作

    很重要,都是精华 多表关系模型 一对一 一旦确定表关系是一对一,在两张表中的任意一张表中建立关联字段+Unique 一对多 一旦确定表关系是一对多,创建关联字段在多的表中 多对多 一旦确定表关系是多对 ...

  9. 前端学习-基础部分-HTML

    开始今日份整理 1.HTML基础标签 1.1 标签 标签格式 HTML规定用英文尖括号,<>包起来,例如<html> HTML中通常标签成对出现,分为开始标签与结束标签,结束标 ...

  10. linux目录1

    1.linux常用快捷键 2.linux命令之vmstat 3.linux命令之df 4.linux命令之netstat 5.linux命令之 tar 6.The authenticity of ho ...