如何手写LR脚本?

环境:win7 64位操作系统 IE8 LR11

教学网址:http://computer-database.gatling.io/computers

说明:

  1. 这是个对电脑信息增删查改的网站。
  2. 任何人都可以访问,这个系统每天会恢复,所以不用担心用多了之后产生太多脏数据。这个网站有安装包,若有需要,可以在本地部署一下。

使用chrome查看请求

以新增电脑为例,在这个网站中,新增一条电脑信息包括三步:

  1. 点击“Add a new computer”按钮加载新增页面
  2. 填写信息并保存
  3. 返回列表页并自动刷新

篇幅所限,我们先以第二步为例讲一下写脚本的过程。

写脚本需要了解请求发生的整个过程,这需要借助工具。常用的抓包工具都可以。对于普通的http请求,用谷歌浏览器查看即可,很方便。

步骤:

1、打开新增页面后,按一下F12,打开浏览器的控制台,然后点击network标签,如图。

2、填写信息并保存,此时观察控制台中的列表。点击第一条进去,切到head标签下查看请求报文。图中圈出了需要重点观察的部分。

从图中我们可以看到这是一个post请求,状态码是303。(文末有注解)

写脚本

3、看到这些信息以后,我们就可以开始写脚本了。打开LR ,新建脚本,选择HTTP协议。不同协议的介绍可以看这里。

LR11一般自动弹出录制配置框,点击取消按钮关闭,然后点击上面的脚本菜单,切换到写脚本的页面。

4、写post请求使用的函数有两个,web_submit_form和web_submit_data,这里两个都可以,我们选择第二种。

5、按下F1,在索引列中输入web_submit_data,然后找到对应的方法并复制。

6、将复制的内容粘贴到action方法体中,然后替换url和表单信息。

7、替换完之后,执行。 控制台提示成功,然后我们再到网站上搜一下我们添加的信息,可以搜到,说明我们的脚本是ok的。

8、接下来进行脚本增强,即添加事务、检查点、集合点、参数化。

说明:

  1. 不添加失误,在controller中就无法统计TPS,
  2. 不添加检查点,就不知道我们的脚本是否真正的执行成功了,
  3. 不添加集合点,controller中设置的vuser数就不等于并发数,
  4. 不进行参数化,执行新增动作添加的数据就都是重复数据,影响我们后期的压测。

9、参数化参考如下:

10、检查点设置参考:

注意点

注意事项:

  • 每个动作对应一个事务,如新增电脑添加3个事务,便于出问题时排查原因;
  • 检查点放在事务的开头还是末尾,参考F1帮助中的说明;
  • 检查点中的内容用什么,可以通过runtimesetting中日志级别设置为
  • 集合点放在lr_start_transaction的上面,不能放在事务中间,否则影响TPS;

压测需了解的HTTP知识

1、http请求的状态码

1xx:指示信息--表示请求已接收,继续处理

2xx:成功--表示请求已被成功接收、理解、接受

3xx:重定向--要完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务器端错误--服务器未能实现合法的请求

2、http有哪些请求方式,get和post请求有什么区别?

  1. get重点在从服务器上获取资源,post重点在向服务器发送数据;
  2. get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?"连接,多个请求数据间用"&"连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的;post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;
  3. Get传输的数据量小,因为受URL长度限制,但效率较高,Post可以传输大量数据,所以上传文件时只能用Post方式;
  4. post较get安全性较高,get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等.
  5. get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码,post支持标准字符集,可以正确传递中文字符。

工具下载链接

LR11的下载地址:

链接:https://pan.baidu.com/s/1VrGKd-cCFzLQONlRPorBJQ 密码:ij60

LR12的下载地址:

链接:https://pan.baidu.com/s/1HF9_-EWEfQappNfty4EdkA 密码:xtgo

LR基础的视频:

链接:https://pan.baidu.com/s/1P64DV4AXR29LOlDAxsjtng 密码:yl0r

原文发布于微信公众号 - 软件测试经验与教训(udatest)

原文发表时间:2018-07-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DeveWork

WordPress主题开发:添加主题更新提醒功能

WordPress官方的主题都可以自动更新升级,但如果是个人分享的免费或收费主题的话,通过下面的教程,也可以为你的私人主题添加版本更新提示。这个提示会直接显示在...

2208
来自专栏云计算教程系列

Linux也有后悔药,五种方案快速恢复你的系统

新手在学习Linux系统的时候,难免会遇到命令输错,或系统出错的难题。那么如何快速解决呢?本文就先给你一个后悔药,让你快速备份并恢复Linux系统。本文将以Ub...

2852
来自专栏HansBug's Lab

【gitlab】gitlab快速部署教程

下载页面: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/xenial/main/g/g...

2981
来自专栏破晓之歌

Redis入门(暂不更新) 原

50个并发程序执行10万个请求,redis读的速度能达到每秒11万次,写的速度能达到每秒8万次。-官方数据

682
来自专栏运维前线

CentOS 6.8 部署zookeeper集群

由于公司缓存方案改进,准备采用codis集群作为主要的缓存解决方案(codis:国内豌豆荚开发的redis集群解决方案,已开源,github地址:https:/...

25610
来自专栏猿人谷

CentOS7安装GitLab、汉化、邮箱配置及使用

GitLab是利用Ruby On Rails开发的一个开源版本管理系统,实现了一个自托管的Git项目仓库,是集代码托管,测试,部署于一体的开源git仓库管理...

3910

CentOS上的FirewallD简介

FirewallD是防火墙用于实现持久化网络流量规则的前端控制器。它提供命令行和图形界面,可在大多数Linux发行版中使用。与直接控制iptables相比,使用...

1346
来自专栏DeveWork

WordPress主题开发:添加主题更新提醒功能

WordPress官方的主题都可以自动更新升级,但如果是个人分享的免费或收费主题的话,通过下面的教程,也可以为你的私人主题添加版本更新提示。这个提示会直接显示在...

2456
来自专栏猿人谷

CentOS7安装GitLab、汉化、邮箱配置及使用

一.GitLab简介 GitLab是利用Ruby On Rails开发的一个开源版本管理系统,实现了一个自托管的Git项目仓库,是集代码托管,测试,部署...

2777
来自专栏蓝天

不再担心日志文件过大:通用日志滚动脚本

log_rotater.zip #!/bin/sh # https://github.com/eyjian/mooon/blob/master/mooo...

1542

扫码关注云+社区

领取腾讯云代金券