Mock说明
要模拟哪些内容?
1、响应数据
2、响应状态码
实现:定义接口 模拟返回结果
设置符合条件的网络请求参数
返回响应的结果
设置不符合条件的网络请求参数
返回响应的结果
上面是JMeter返回数据汉字显示为Unicode字符串
只需要设置一下即可正确返回汉字
解决过程:
1.修改jmeter配置文件中的默认编码
在Jmeter的安装路径下打开bin文件夹下的jmeter.properties文件,搜索关键词default.encoding定位到语句【#sampleresult.default.encoding=ISO-8859-1】。
将注释#删掉,并改成utf-8编码
2.添加后置处理器BeanShellPostProcessor和转码代码
添加后置处理器BeanShellPostProcessor,在Script中附上转码代码
转码代码如下:
//获取响应代码Unicode编码的
String s2=new String(prev.getResponseData(),"UTF-8");
//---------------以下步骤为转码过程---------------
char aChar;
int len= s2.length();
StringBuffer outBuffer=new StringBuffer(len);
for(int x =0; x <len;){
aChar= s2.charAt(x++);
if(aChar=='\\'){
aChar= s2.charAt(x++);
if(aChar=='u'){
int value =0;
for(int i=0;i<4;i++){
aChar= s2.charAt(x++);
switch(aChar){
case'0':
case'1':
case'2':
case'3':
case'4':
case'5':
case'6':
case'7':
case'8':
case'9':
value=(value <<4)+aChar-'0';
break;
case'a':
case'b':
case'c':
case'd':
case'e':
case'f':
value=(value <<4)+10+aChar-'a';
break;
case'A':
case'B':
case'C':
case'D':
case'E':
case'F':
value=(value <<4)+10+aChar-'A';
break;
default:
throw new IllegalArgumentException(
"Malformed \\uxxxx encoding.");}}
outBuffer.append((char) value);}else{
if(aChar=='t')
aChar='\t';
else if(aChar=='r')
以下为正确显示
回到项目
连接数据库工具
mock代码 写接口 把数据提取出来 保存起来
常见面试题
接口测试数据的准备
构造数据
二、构造测试数据
构造数据的方式
通过系统页面构造
通过接口构造
通过数据库构造
2.1通过系统页面构造
优点:可视化页面操作
缺点:复杂,操作步骤较多,不适合频繁改造数据
示例:参考发布的借款标流程
2.2通过接口构造
优点:数据块
缺点:接口耦合度高(接口之间依赖性强,一个失败,后面全失败)
建议:适合依赖三个以内接口进行构造
2.3通过数据库构造【推荐】
优点:灵活度大,执行速度最快
缺点:需要熟悉库、标、字段
建议:使用SQL语句时,使用复制生成的SQL语句,修改主要字段值
2.4构造借款业务数据