文档章节

Apache JMeter 接口测试

lindeyi
 lindeyi
发布于 2016/11/28 15:12
字数 799
阅读 465
收藏 1

Jmeter我也是第一次使用,测试同事要帮忙看下工具怎么使用,做几个demo,留下记录。

怎么新建一个普通的http请求?

怎么查看请求结果?

怎么做账号登录?

怎么测试需要登录后操作的接口?

JMeter中的变量使用?

JMeter BeanShell中内置对象有哪些?

如何使用beanshell 脚本对密码md5加密?

1、怎么新建一个普通的http请求?

这个很简单,首先先建一个线程组。线程组可以模拟多线程访问。

然后添加一个sampler,选择http请求。

我们以登录接口为例,登录url:http://127.0.0.1/login.do

登录名:admin,密码:123456

在路径上填写测试url。有参数的在参数列表中添加。

保存 然后在菜单工具栏上找到绿色开始的三角图标。

 

怎么查看请求情况呢?添加监听器-查看结果树

再次运行,就可以看到结果了。

如果有个方法需要登录后操作,改怎么处理?

例如:更改我的用户信息的接口需要登录操作之后才可以。

url:http://127.0.0.1/user.do;

params:birthDate=1989-01-01&nickName=张三

就在之前的登录操作http之后再建个http请求。但是允许后报错,服务器找不到对应用户。

这个是因为登录后cookie没有带回服务器,服务器不认为2次操作是同一用户操作。

这里就需要加个 配置元件-http cookie管理器,默认配置就可以

这个放在最前面,

在JMeter中怎么使用变量,可以在添加 配置元件-用户定义变量。使用方式${变量名}。这样做可以统一管理接口参数。

怎么在请求前或者请求后做一些操作呢?例如给密码做md5加密?如何把登录返回结果作为变量,给后续的接口使用?

这就涉及到前置处理器和后置处理器。

给密码加密使用前置处理器,返回结果处理使用后置处理器。

写到这,先说下JMeter内置变量有哪些?

Log:该函数的日志记录器。

Ctx:JmeterContext对象。

Vars:JmeterVariables对象。

threadName:字符串包含当前线程名称 (在2.3.2 版本中它被误写为"theadName")。

sampler:当前采样器对象(如果存在)。

sampleResult:前面的采样结果对象(如果存在)。

props:JMeter属性对象。

先来解决密码MD5,前置处理器很多,我们现在使用BeanShell PreProcessor;

BeanShell脚本语言是使用java语法编写的。很简单。

import org.apache.jmeter.config.*;
import java.security.*;
import sun.misc.*;
import java.math.*;

log.info("===================密码md5处理==================");


//获取参数
public static String getParam(key){
	//获取参数
	Arguments args = sampler.getArguments();
	//参数转map
	Map map = args.getArgumentsAsMap();
	return map.get(key);
}

//设置参数
public static void setParam(key,val){
	sampler.getArguments().removeArgument(key);
	sampler.addArgument(key,val);
}


//md5加密
public static String md5(signData){
	MessageDigest md5=MessageDigest.getInstance("MD5");
	md5.update(signData.getBytes());
	return new BigInteger(1, md5.digest()).toString(16);
}

//获取原密码参数
String passwordSrc = getParam("passWord");
log.info("passwordSrc:"+passwordSrc);
//MD5
String passpowdMd5 = md5(passwordSrc);
log.info("passpowdMd5:"+passpowdMd5);
//设置密码参数
setParam("passWord",passpowdMd5);

后置操作一样可以通过BeanShell脚本来处理;

String json = prev.getResponseDataAsString();

先这样吧。

© 著作权归作者所有

lindeyi
粉丝 5
博文 16
码字总数 14150
作品 0
海淀
私信 提问
JMeter学习-001-JMeter初识

Apache JMeter是Apache组织开发的基于Java的开源压力测试工具(个人发现也可用于接口测试)。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试...

拎壶冲冲冲
2018/05/29
0
0
jmeter--001.介绍、下载与安装

一.介绍 使用场景:   -1.接口测试   -2.性能测试   .... 特点:   -1.开源、轻量级、插件化   -2.适合自动化和持续集成 二.下载(Windows环境) 下载网址:http://jmeter.apache....

小红帽爱吃大灰狼
2018/07/30
0
0
软件推荐 | Apache JMeter 的 Dubbo 接口压力测试插件

Dubbo Plugin for Apache JMeter 是一个 Apache JMeter 的插件, 主要用途是在 Jmeter 中可视化的对 Dubbo 接口进行压力测试,简单易用。...

王练
2018/06/05
9
0
Dubbo Plugin for Apache JMeter

Dubbo Plugin for Apache JMeter 介绍 它是一个Apache JMeter的插件, 主要用途是在Jmeter中可视化的对Dubbo接口进行压力测试,简单易用。 Jmeter版本支持情况 Jmeter版本:3.0+ Dubbo版本支持...

凝雨
2018/06/05
0
0
Dubbo Plugin for Apache JMeter 1.3.4 功能增强

Dubbo Plugin for Apache JMeter它是一个Apache JMeter的插件, 主要用途是在Jmeter中可视化的对Dubbo接口进行压力测试,简单易用。 Dubbo Plugin for Apache JMeter 1.3.4 已发布,该版本主要...

凝雨
2018/06/20
1K
7

没有更多内容

加载失败,请刷新页面

加载更多

Redox OS 发布 0.5 版

Redox OS 是一个几乎完全以 Rust 语言编写的通用操作系统及周围生态(例如文件系统、显示服务器及 Rust 版本的 libc)。其遵循微内核架构,在一定程度上兼容于 POSIX。 该项目于日前发布了 ...

linuxCool
59分钟前
2
0
更新上传git/gitee项目时出现密码配置错误(incorrect username or password)的解决办法

1.输入【git remote add origin git地址】 命令时出现incorrect username or password的错误,这是因为之前弹出输入账户和密码时输错了,而且会一直默认错误的账户和密码,因此需要把之前输入...

west_coast
今天
0
0
Jenkins基础入门-1-Jenkins简单介绍和环境安装

如果在做自动化测试的朋友,应该熟悉Jenkins,或者至少使用过。如果一个人没有使用过Jenkins或者hudson,hudson是Jenkins的前身,他还说自己做过自动化测试,只能说,他只不过是在做半自动化...

shzwork
今天
0
0
linux上解压版安装jdk,tomcat

需要的安装包 1.vmware12 2.centos7版本 3.安装完成后需要xshell来连接远程虚拟机,虚拟机保证要联网,网络畅通。 4.xftp用来向linux传输文件用,一般来说xshell和xftp配套使用 5.对应的压缩...

architect刘源源
今天
29
0
使用 spring 的 IOC 解决程序耦合

工厂模式解耦 在实际开发中我们可以把三层的对象都使用配置文件配置起来,当启动服务器应用加载的时候,让一个类中的方法通过读取配置文件,把这些对象创建出来并存起来。在接下来的使用的时...

骚年锦时
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部