loadrunner压力测试学习笔记

loadrunner压力测试学习笔记loadrunner学习过程以下仅记录自己的学习过程,有不对之处欢迎指出。压力测试步骤:1.分析需求2.准备脚本3.调试脚本2.准备脚本:可以录制也可以自己写,录制的话先按需求分好每一个action,录制时先切换到当前action,再进行录制。例如:创建一个新的脚本,在action里添加新的action,open_index,submit_login,sign_off(loadrunner自带案例的登录过程)3.调试脚本:(1)回放:脚本准备好后进行回放,需要参数的提前准备好参数,比如注册

大家好,又见面了,我是你们的朋友全栈君。

loadrunner学习过程
以下仅记录自己的学习过程,有不对之处欢迎指出。脚本中提到的链接是本人学习时查阅到的有帮助的文章,如果对原作者有影响,可以联系我做修改。
压力测试步骤:
1.分析需求
2.准备脚本
3.调试脚本

1.分析需求
(1)计算单次业务所需时间
用loadrunner录制并调试好脚本后给需要计算的业务加上事务(未调试成功的脚本不能用,因为业务可能不成功,计算出的时间不准确),设置合理的think time(一般是5秒,或者根据自己的需求不需要设置think time)运行一次,查看事务用了多长时间。
2.准备脚本:可以录制也可以自己写,录制的话先按需求分好每一个action,录制时先切换到当前action,再进行录制。例如:创建一个新的脚本,在action里添加新的action,open_index,submit_login,sign_off(loadrunner自带案例的登录过程)
在这里插入图片描述

3.调试脚本:
(1)回放:脚本准备好后进行回放,需要参数的提前准备好参数,比如注册功能。回放时打开日志,run-time-settin—always sand messages—extended log—parameter substitution,调试结束后可关闭日志或修改成错误时发送。回放结束后在tasks—verify replay—visual test results查看回放结果,打开每个step查看回放是否成功,如下图所示。不能看replay status的返回结果,有时会显示No errors detected,但不代表回放成功了。
在这里插入图片描述
(2)关联:
先看一下为什么要进行关联以及关联的本质
以下这段有参考文章:https://blog.csdn.net/qq_34659777/article/details/81947433
为什么要进行关联?
在录制生成的脚本中,录制到了一些服务器分配的数据,比如sessionID,回放时脚本用的是录制的数据,即旧的sessionID,但回放请求服务器时,服务器重新分配了新的sessionID,回放用的sessionID与服务器新分配的不一致,就会导致请求失败。这时候就需要把服务器分配的新的sessionID存到参数中,再次使用时直接从参数中读取。关联不止适用于获取sessionID,还可以用来获取其他浏览器分配的数据。
关联的本质
关联就是用函数获取服务器分配的数据,存储到参数中,需要使用时从参数中取出,从而保证使用的是服务器最新分配的数据。
其实关联也属于一种特殊的参数化,只是与一般的参数化有些不同。一般的参数化的参数来源于一个文件、一个定义的table、通过sql写的一个结果集等,但关联所获得的参数是服务器响应请求所返回的一个符合条件的、动态的值。
脚本是否需要关联以及关联的位置可以参考如下链接:
https://blog.csdn.net/u011446864/article/details/38395975

以下是关联的步骤:
如果没有关联直接回放脚本会发现回放出现错误,如下图
在这里插入图片描述

在这里插入图片描述
关联函数:web_reg_save_param(const char *ParamName, , LAST); 具体用法参考:https://www.cnblogs.com/qmfsun/p/4900272.html
关联步骤:
a.录制脚本后打开树视图—show record and replay snapshots—http view—row data—response。找到需要做关联的地方,如下图,如果找不到userSession,可以在path下挨个选中路径。然后查看Rawdata里有没有需要找的数据。
在这里插入图片描述

b.全选复制response中的内容到notepad++,找到userSession行,在下一行输入web_reg_save_param函数,输入顺序如下图,先输入web_reg_save_param(“”,””,””,LAST); ,再往里填充内容,其中第一个“”中输入参数名,例如usersession;第二个“”中输入左边界,例如LB=userSession value=;第三个“”中输入右边界,例如>。左右边界是为了让函数找到需要关联的值,左右边界中间的值是需要关联的值。(如果输入的内容包含”号,则在”号左边加上\),如下图,图中分别列出了有”号和没有”号的,具体根据自己的情况参考。web_reg_save_param函数还有很多其他的参数,不同的情况用到的参数可能不一样,具体的可以自己去查阅。
在这里插入图片描述
c.把写好的函数插入到脚本第一个action中,即open_index里,如下图(关联函数放置位置这块我还没搞懂,具体可参考: https://blog.csdn.net/u011446864/article/details/38395975)。然后在脚本中找到需要替换的Usersession的值,替换成之前在函数web_reg_save_param中定义的参数名,即usersession,示例脚本在submit_login中,如下图,这是已经替换过参数的,未替换的应该是类似于 value=130067.248926691zzQADDtpVVzzzzzHtAVtcpAAtH> 这样的。替换参数后保存脚本然后回放,在这里插入图片描述
在这里插入图片描述

如果回放时replay log中报错Error -26377: No match found for the requested parameter,则在runt time setting中internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,勾选后再运行就好了,具体参考链接:https://www.testwo.com/blog/5531 如下图
在这里插入图片描述
下图是关联后的运行结果,可以看到运行正确了。
在这里插入图片描述
这次先写到这里,下次有空再来更新…

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161004.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • VeryCD网站无法访问 遭广电总局强行关闭[通俗易懂]

    VeryCD网站无法访问 遭广电总局强行关闭[通俗易懂]就在昨天还可以正常访问的知名下载网站VeryCD今天下午2点半左右突然无法访问,分析人士称或与广电总局最近的新政策有关。知名下载网站VeryCD首页截图  12月9日下午消息,多名网友向腾讯科技反映,就在昨天还可以正常访问的知名下载网站VeryCD今天下午2点半左右突然无法访问,分析人士称或与广电总局最近的新政策有关。  据悉,除了北京网友无法访问外,深圳以及上…

    2022年8月10日
    7
  • 数据库复制(一)–复制介绍

    数据库复制(一)–复制介绍

    2021年11月25日
    38
  • jsonobject是什么类型_json和jsonobject区别

    jsonobject是什么类型_json和jsonobject区别JSONObject是一种数据结构,可以理解为JSON格式的数据结构(key-value结构),可以使用put方法给json对象添加元素。JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。一、构建json1、实例化一个JSONObject对象,用put()方法将数据写入。JSONObjectobj=newJSONObject(…

    2022年9月2日
    3
  • C++ 数值与 string 的相互转换

    C++ 数值与 string 的相互转换使用函数模板将基本数据类型(整型、字符型、实型、布尔型)转换成string。//ostringstream对象用来进行格式化的输出,常用于将各种类型转换为string类型//ostringstream只支持<<操作符template<typenameT>stringtoString(constT&t){ostringstreamoss;//创建一个格式化输出流

    2022年5月14日
    34
  • 将menubar加入_java菜单栏工具栏

    将menubar加入_java菜单栏工具栏importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.util.EventListener;publicclassTestMenuBarextendsFrame/*implementsActionListener*/{MenuBarmenubar=newMenuBar();Menufi…

    2025年7月29日
    1
  • error link2019无法解析的外部符号_inferior

    error link2019无法解析的外部符号_inferior最近在用VS2008开发,初学遇到不少问题,最头疼的问题之一就是:LNK2019。百度一下讲的并不够全面,反正都没解决我的问题。errorLNK2019问题在VC6.0中是errorLNK2001:unresolvedexternalsymbol问题,可能错误号改了。编译时出现类似这样的错误:Dlgcode.obj:errorLNK2019:无法解析的外部符号_readRe…

    2022年9月28日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号