前段时间接触了一下loadrunner的接口性能测试,然后尝试了一下手动编写脚本,毕竟录制这种东西,不是每次都能通的,而且录制下来的脚本,通常是有很多其他杂七杂八的请求夹杂在中间,没有达到真正的压测接口的目的;

  loadrunner默认的脚本是C语言的,百度之后发现其实它支持目前所有主流的语言,如:Java User、VB User、VB script User 、Javascript User等。

  下面是尝试过的几种post接口的请求方式:

  • Post接口,通过JSON方式请求:
  1. int i;
  2. game()
  3. {
  4. //赛事列表接口开始时间,时间戳
  5. lr_save_string("","gameHoldBeginTime");
  6. //赛事列表接口结束时间,时间戳
  7. lr_save_string("","gameHoldEndTime");
  8. //gameCode
  9. //lr_save_string("1532122","gameCode");
  10. //以下接口循环请求两次
  11. for (i=0;i<2;i++)
  12. {
  13. /*胜负盘赛事列表接口*/
  14. web_reg_save_param ("S_respond","LB=","RB=",LAST); 
  15. //获取赛事编码gameCode,提供给后续接口调用
  16. web_reg_save_param("gameCode","LB=gameCode\":\"","RB=\"",LAST);
  17. web_add_header("Content-Type","application/json; charset=UTF-8");
  18. lr_start_transaction("listGames");
  19. web_custom_request("listGames", 
  20. "URL={url}/common/listGames", 
  21. "Method=POST", 
  22. "Resource=0", 
  23. "RecContentType=application/json", 
  24. "Referer=", 
  25. "Snapshot=t3.inf", 
  26. "Mode=HTML", 
  27. "EncType=application/json; charset=UTF-8", 
  28. "Body={\"requestId\":\"{requestId}\",\"timestamp\":\"1523503209424\",\"version\":\"1.0.0\",\"clientId\":\"{clientId}\",\"accessToken\":\"{token}\",\"data\":{\"gameHoldEndTime\":\"{gameHoldEndTime}\",\"gameHoldBeginTime\":\"{gameHoldBeginTime}\",\"gameType\":\"ALL\"},\"sign\":\"{sign}\"}", 
  29. LAST);
  30.  
  31. lr_end_transaction("listGames", LR_AUTO);
  32. //打印返回信息 
  33. lr_convert_string_encoding ( lr_eval_string ("{S_respond}"),LR_ENC_UTF8 ,NULL,"respond"); 
  34. //打印转码后的响应报文 
  35. lr_output_message ( "\nlistGames :%s",lr_eval_string ("{respond}"));
  36. //循环结束
  37. }
  38. }
  • Post请求,使用from-data方式进行请求的时候,脚本的写法:
  1. lr_start_transaction("saishiPost");
  2.  
  3. web_submit_data("saishiPost",
  4. "Action={url}/higame/saishiPost",
  5. "Method=POST",
  6. "TargetFrame=",
  7. "EncType=multipart/form-data",//使用的编码类型
  8. "Referer=https://yqcqtest.100bei.com/higame/gamelist",
  9. "RecContentType=application/josn",
  10. "Mode=HTML",
  11. ITEMDATA, //下面编辑post请求的数据
  12. "Name=gameState", "Value=WAITING", ENDITEM, //数据的name、value及结束符
  13. "Name=riqi", "Value=2018-06-08", ENDITEM, //第二条数据的name、value及结束符
  14. "Name=leagueCode", "Value=", ENDITEM,
  15. LAST);
  16.  
  17. //结束事件
  18. lr_end_transaction("saishiPost", LR_AUTO);
  19.  
  20. //打印返回信息
  21. lr_convert_string_encoding( lr_eval_string("{S_respond}"),LR_ENC_UTF8,NULL,"respond" );
  22. //打印转码后的响应报文
  23. lr_output_message("\nappInfo :%s", lr_eval_string("{respond}"));
  • Get请求脚本编写方法,get请求还是比较简单的,只需要套用更改url,基本就能调通了;
  1. /*情报接口*/
  2. web_reg_save_param ("S_respond","LB=","RB=",LAST);
  3. //检查点
  4. //web_reg_find("Search=Body","Text=200",LAST);
  5. web_add_header("Content-Type","application/json; charset=UTF-8");
  6. lr_start_transaction("intelligences");
  7.  
  8. web_custom_request("intelligences",
  9. "URL={url}/guess-api-gateway/portal/admin/common/intelligences?pageSize=5",
  10. "Method=GET",
  11. "Resource=0",
  12. "Referer=",
  13. "Mode=HTTP",
  14. "EncType=application/json;charset=UTF-8",
  15. "Body=",
  16. LAST);
  17.  
  18. lr_end_transaction("intelligences", LR_PASS);
  19.  
  20. //打印返回信息
  21. lr_convert_string_encoding( lr_eval_string("{S_respond}"),LR_ENC_UTF8,NULL,"respond" );
  22. //打印转码后的响应报文
  23. lr_output_message("\nintelligences :%s", lr_eval_string("{respond}"));

另外:使用lr_save_string方法,配置静态变量以及接口请求的字段参数。还可以使用判断语句,来区分读取不同的配置,达到更高的易维护性;

loadrunner 接口性能脚本编写(Get请求和Post请求)的更多相关文章

  1. Loadrunner Webservice接口性能测试脚本编写优化总结

    本文主要介绍使用Loadrunner Webservice接口性能测试脚本编写及优化总结. 1.Webservice协议脚本编写流程 下面介绍使用Loadrunner 11调用Webservice接口 ...

  2. loadrunner录制脚本如何选择使用get请求和post请求的方式

    在loadrunner工具里录制脚本时常常会用到get请求和post请求,有关loadrunner常用的这两类的请求主要有: get请求: web_url 和 web_link post请求: web ...

  3. Loadrunner之HTTP脚本编写

    Loadrunner之HTTP脚本编写 刚学习性能测试的时候还是建议以录制脚本为好,从录制的脚本中去了解脚本结构,各个函数的用法,慢慢再去尝试自己去编写脚本,如果想往技术方向发展,建议最好学习一门编程 ...

  4. loadrunner学习系列---脚本编写(2)

    loadrunner学习系列---脚本编写(2) 今天接着翻译http://www.wilsonmar.com/1lrscrīpt.htm上面关于LR脚本编写部分. VUser_Init部分 这里是V ...

  5. 使用SoapUI工具做get请求和post请求接口测试

    祝大家节日快乐啦. 之前写过的一篇帖子已经介绍了SoapUI工具的基本使用,所以在此不再重复讲解关于建工程.建测试套件.添加用例等操作,可查看该篇文章详解:http://www.cnblogs.com ...

  6. SoapUI工具做get请求和post请求接口测试

    转载自:https://www.cnblogs.com/hong-fithing/p/7617366.html 此篇主要介绍SoapUI工具做常用的两种请求接口测试,分别是get请求和post请求. ...

  7. 浅说Get请求和Post请求

    Web 上最常用的两种 Http 请求就是 Get 请求和 Post 请求了.我们在做 java web 开发时,也总会在 servlet 中通过 doGet 和 doPost 方法来处理请求:更经常 ...

  8. axios中出现两次请求,OPTIONS请求和GET请求

    在项目中发现ajax中出现两次请求,OPTIONS请求和GET请求 查看到浏览器NetWork有两次请求,请求url一样: 查找原因是浏览器对简单跨域请求和复杂跨域请求的处理区别. XMLHttpRe ...

  9. HttpClient之Get请求和Post请求示例

    HttpClient之Get请求和Post请求示例 博客分类: Java综合   HttpClient的支持在HTTP/1.1规范中定义的所有的HTTP方法:GET, HEAD, POST, PUT, ...

随机推荐

  1. 百度编辑器(UEditor)自定义工具栏

    百度编辑器(UEditor)自定义工具栏的自定义 百度编辑器默认功能比较齐全,但是不一定是我们所需要的,有的功能可以去掉,用自己想要的就可以了,可以参考百度官方文档! 百度编辑器默认配置展示界面 如何 ...

  2. Android.mk (1) 函数

    https://www.jianshu.com/p/46224d15fc5f 从函数说起 大家都习惯看从头,从构建目标讲起的,导致每篇文档熟的都是前面的部分.很多教程也都是想办法能够观其大略,从整体上 ...

  3. 异构GoldenGate 12c 双向复制配置

    1.配置window,添加checkpoint表(本文windows和linux互为source和target) GGSCI (WIN-GM5PVS1CILH) 1> view param ./ ...

  4. Elasticsearch学习之深入搜索六 --- 平衡搜索结果的精准率和召回率

    1. 召回率和精准度 比如你搜索一个java spark,总共有100个doc,能返回多少个doc作为结果,就是召回率,recall 精准度,比如你搜索一个java spark,能不能尽可能让包含ja ...

  5. LeetCode 14 Longest Common Prefix(最长公共前缀)

    题目链接:https://leetcode.com/problems/longest-common-prefix/?tab=Description   Problem: 找出给定的string数组中最 ...

  6. Visual Studio 2013安装Update 3启动crash的解决方法

    Visual Studio 2013安装完Update 3后启动立刻crash,异常信息为: System.InvalidOperationException was unhandled Messag ...

  7. 硬件RDMA的驱动配置和测试

    author:headsen chen date: 2019-01-18  10:22:20 notice:created  by headsen chen himself and not allow ...

  8. 基于spring-cloud的微服务(2) eureka服务提供方的注册和消费方的消费

    启动Eureka注册中心之后,服务提供方就可以注册到Eureka上去(作为一个Eureka的客户端) 我们使用IDEA提供的spring initializer来新建一个springcloud项目 填 ...

  9. tornado 数据库操作

    tornado是python的web框架,web程序开发中数据库操作是必须的. 安装: tornado的官方文档中提供的说明比较少,而且提供的模块中未找到数据库方面的模块,难道没有针对数据库操作进行封 ...

  10. Ios8 Xcode6 设置Launch Image 启动图片

    http://blog.sina.com.cn/s/blog_6c97abf10102voui.html Http://Www.woowen.com/Swift/2014/12/12/Ios8设置La ...