Post接口的参数格式
1、键值对:key=value
2、Json字符串:{"a":"b"}
3、二进制数据
4、xml (webservice)
关键点:
1、添加http post请求
2、添加header:Content-type:text/xml
一种安全可靠的协议,很多其他协议,比如HTTP,底层使用的就是TCP
特点:
1、调用tcp接口时,只需要配置接口的ip和端口号即可,不需要url和路径
2、客户端在调用tcp接口时,必须配置接口返回数据的最后一个字符,作为传输结束的标识符。客户端接受到服务端返回数据时,如果最后一个字符和配置的标识符相一致,则认为服务端数据传输完毕,关闭链接,否则,就会一直等待
3、在jmeter里,需要把结束标识符转换为ASCII码,然后配置到行尾字节值
参数类型:
1、xml
2、Json
3、普通文本
4、十六进制
1、先在测试计划处添加数据库的驱动包
2、添加JDBC Connection Configuration,配置数据库相关信息
3、添加jdbc request,编写SQL
两种SQL的类型:
1、select语句:select
2、update语句:insert、update、delete
查询类型:
1、普通的类型(select、update)
2、预编译类型(带prepared),特点是SQL语句的性能比较好,执行速度快。如果SQL语句做参数化的话,动态的数据用?代替
3、参数类型(parameter type)
a> VARCHAR:字符串
b> INTEGER:整数
对于实时性要求比较高的业务场景(IM聊天、网络直播等)
如果采用HTTP协议,为了保证实时性,只能使用客户端轮询的策略来实现,这种策略会对服务器产生很大的压力
websocket协议可以实现服务端主动推送,当有数据时,主动推送给客户端
需要安装插件
1、建立连接 websocket open connetion
2、发送请求响应
3、读取响应
4、关闭
BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。
beanshell脚本中不用定义,可以直接使用的变量,常用的内置变量和方法如下
log:写日志到控制台和jmeter.log,如log.info(“xxxxx”);
vars:操作jmeter变量
vars.get(“skuId”);从jmeter中获取${skuId}变量的值
vars.put(“name”,”test”);将”test”保存到${name}变量中
prev:获取前面sampler返回的信息
getResponseDataAsString():获取响应信息
getResponseCode():获取响应code
需求:
1、调用接口获取sku信息
2、判断库存,如果库存大于500,调用buy接口购买10个商品,否则购买5个商品
// 获取接口返回的库存值
String myStock = vars.get(“p_stock”);
// 转换为整数
int iStock = Integer.parseInt(myStock);
// 判断库存
if (iStock > 500){
// 重新保存参数
vars.put(“buyNum”,"10");
}else{
vars.put(buyNum”,"5");
// 引入源代码
source(“D:/Md5Util.java”);
// 生成随机手机号
String phone = "135${__Random(10000000,99999999,myPhone)}";
String code = "testfan";
// 生成时间戳
String time = "${__time(,myTime)}";
// 调用外部函数进行加密
String md5 = Md5Util.getMd5Hex(phone+code+time);
// 将数据另存为新的变量
vars.put("phone",phone);
vars.put("md5",md5);
1、测试计划,Add directory or jar to classpath(导入)
2、import 所需要的类名
import com.lee.util.Md5Util
// 生成随机手机号
String phone = "135${__Random(10000000,99999999,myPhone)}";
String code = "testfan";
// 生成时间戳
String time = "${__time(,myTime)}";
// 调用外部函数进行加密
String md5 = Md5Util.getMd5Hex(phone+code+time);
// 将数据另存为新的变量
vars.put("phone",phone);
vars.put("md5",md5);