老李分享:loadrunner用javavuser进行接口测试

在这里分享一个poptest培训过程中案例,在日常工作中会遇到被测试系统通讯都是通过加密的数据包,加密算法是公司自己开发的,并且发送的数据包还要经过系统的压缩,以保证系统的性能。利用loadrunner就无法解决这里的加密的技术问题,利用javavuser会更好一些,可以利用java更强大的包来开发更加完善的脚本。

第一步:loadrunner创建java_vuser脚本 :

在建立脚本界面选择Create/Edit Script-->New Script-->选择java协议-->java_vuser 建立脚本,

第二步:配置loadrunner的环境:

在run-time-setting 设置classpath。

第三步:导入公司开发的java包:

和java配置一样, 还有要import com.lr_class.*,在脚本目录建立com文件夹,在com中在加lr_class文件夹,将用到的类文件放在其中。

第三步:开发javavuser脚本:脚本用gzip压缩和公司开发的加密算法。

备注:http协议中使 web_custom_request函数中的 BodyBinary参数发送字节流,也可以完成。

import lrapi.lr;
import com.lr_class.*;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.impl.client.DefaultHttpClient;

public class Actions
{

public int init() throws Throwable {
   return 0;
}

public int action() throws Throwable {

String url ="http://xx.xx.xx.xx/stats/uploadData";

int code;
byte[] dataBytes= Fdata.putData("<testing>","<user>","<id>","<age>","<time>",1,1,5,1,1348042886,4,13432909036L,1234567890123455L,1,1);

System.out.println(dataBytes);
byte[] b = UnGZIP.compressToByte(dataBytes);
b = XXXXXRC4.code(b);

System.out.println(b);
lr.start_transaction("发送"); 
ByteArrayInputStream bs = null ; 
bs = new ByteArrayInputStream(b, 0, b.length);
HttpPost httpPost = new HttpPost(url);
httpPost.addHeader("Content-Type", "application/octet-stream");
HttpEntity he = new InputStreamEntity(bs, b.length);
httpPost.setEntity(he);
HttpResponse httpResponse = new  DefaultHttpClient().execute(httpPost); 
code = httpResponse.getStatusLine().getStatusCode();

if (code == 901) {
   lr.output_message("成功  code:"+code);
    lr.end_transaction("发送", lr.PASS);
}
else{
   lr.error_message("失败   code:"+code);
    lr.end_transaction("发送", lr.FAIL);
}        
return 0;
}

public int end() throws Throwable {
  return 0;
}
}

原文链接:http://www.cnblogs.com/laoli0201

老李分享:loadrunner用javavuser进行接口测试的更多相关文章

  1. loadrunner用javavuser进行接口测试

    在日常工作中会遇到被测试系统通讯都是通过加密的数据包,加密算法是公司自己开发的,并且发送的数据包还要经过系统的压缩,以保证系统的性能.利用loadrunner就无法解决这里的加密的技术问题,利用jav ...

  2. 老李分享:loadrunner的java user脚本开发

    老李分享:loadrunner的java user脚本开发 poptest在性能测试loadrunner的课程里,以web协议为主,同时也讲解其他协议的脚本开发,对于一个性能测试工程师需要掌握一个以上 ...

  3. 老李分享:Eclipse中开发性能测试loadrunner脚本

    老李分享:Eclipse中开发性能测试loadrunner脚本 前篇我分享了如何用loadrunner搭建javauser的性能测试脚本环境,本次我来告诉大家如何在eclipse开发loadrunne ...

  4. 老李分享:loadrunner操作mysql数据库

    老李分享:loadrunner操作mysql数据库        在poptest测试开发工程师就业培训的课程中,针对一套商业系统进行性能测试,目标是mysql后台数据库的负载能力,在这里我把测试代码 ...

  5. 老李分享:loadrunner 的86401错误

    老李分享:loadrunner 的86401错误   系统和软件配置: os:windows 2003loadruner版本:LoadRunner11loadrunner:协议:SMTP协议并发数:2 ...

  6. 老李分享:性能测试你不应该只知道loadrunner(1)

    老李分享:性能测试你不应该只知道loadrunner(1)   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.poptest测试 ...

  7. 老李分享:接口测试之jmeter

    老李分享:接口测试之jmeter   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.移动端自动化测试很多人把他仅仅理解成appu ...

  8. 老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具

    老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具 poptest是业内唯一的测试开发工程师培训机构,测试开发工程师主要是为测试服务开发测试工具,在工作中要求你做网络级别的安全 ...

  9. 老李分享:loadrunne动态查询db2数据库

    老李分享:loadrunne动态查询db2数据库   poptest老李认为性能测试脚本开发不仅仅涉及到脚本开发的技术层面,同时也要对一些其他技术有所了解动态链接库的技术,线程安全等等,建议在做下面的 ...

随机推荐

  1. 兜转数年,老跳成了卖过软件开过店写过APP的电脑老师

    老跳(因为性格太跳,被大家公认的外号),87年生,湖南人,上篇中老赵的大学下铺兄弟. 2008年大学毕业两人一同去的广州,住在求职公寓里找工作. 老赵找工作找了半个月,老跳却在到广州的第二天就开始上班 ...

  2. 原生js中slice()方法和splice()区别

    slice()方法和splice()方法都是原生js中对数组操作的方法. slice(),返回一个新的数组,该方法可从已有的数组中返回选定的元素.例如:arrObject(start,end),sta ...

  3. 考试模块 - ERP数据流

    快速链接:人力资源知识体系索引 本主题主要列出考试中涉及到的所有表. 步骤 操作 相关表 说明 1 考试辅助资料   基础资料,见附表1 2 题库(109130) HXExmGp   3 试题 HXE ...

  4. 如何更新 OpenStack 组件?- 每天5分钟玩转 OpenStack(161)

    这是 OpenStack 实施经验分享系列的第 11 篇. 本节教大家更新 OpenStack 组件的方法.请注意,是更新(Update)而不是升级(Upgrade).更新是给组件打补丁,版本不变:而 ...

  5. Mac OSX Sierra WiFi connecting problem

    吐槽一下,苹果的质量管控越来越差了. Mac OSX Sierra有时突然或升级后会遇到wifi不停重连连不上问题,现象为不停地连接wifi. 网上有人说删除 /Library/Preferences ...

  6. JS入门(三)

    数据的类型转换: 之前提到过,js中数据类型分两种, 基本数据类型string  number   boolean  undefined  null 复杂数据类型 对象   Date   Array ...

  7. ArrayList源码剖析

    ArrayList简介 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存. ArrayList不是线程安全的,只能用在单线程环境下,多线 ...

  8. 1179: [Apio2009]Atm

    1179: [Apio2009]Atm Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 1629  Solved: 615[Submit][Status ...

  9. 基于JAVA语言的selenium测试基础总结

    目录一.基本语句1.循环控制(break,continue)3.字符的替换(replace,repalceFirst,replaceAll,regex)4.字符串的连接("+",a ...

  10. Spring 容器可以在自动装配相互协作的 bean 之间的关系,使用autowire属性定义指定自动装配模式。

    使用setter方法java public class TextEditor { private SpellChecker spellChecker; public void setSpellChec ...