一 、接口测试常见问题
前景提要:由于本人测试小白,可能所遇问题都较为基础,测试小白可以参考
Q1:postman会报connect ECONNREFUSED
,jemeter会报org.apache.http.conn.HttpHostConnectException: Connect tofailed: Connection refused: connect
检查接口书写没有问题,get请求,没有参数
原因:接口地址存在问题,是本地接口,所以无法调通
Q2:错误信息:{“code”:10001,“message”:“错误的token”,“result”:null,“details”:null,“success”:false}
原因:因当前使用的账号在其他位置已经登录,故token失效,提示该错误
解决办法:重新调用登录接口即可
2、错误信息:{: “code”:41002,: “message”:“不支持的HTTP请求方法”}
原因:接口请求方式错误,修改正确接口即可调通
3、提取参数为null
3.1因为是get方法放到了url中,需要放到parameters
二、接口测试经验合集
1、post请求的参数需要使用bady data 来传递参数
2、如果不同线程需要相同的变量值,提取的名字最好不一致,因为会导致后面的覆盖到前面;如果想取最新的,则可以使用相同的名称
3、写完的接口需要查看是否返回数据以及返回数据的正确性,才能确认接口是否正确
4、传递参数需要放到正确的位置
Get方法需要放到parameters
Post方法需要放到 body data
5、post方法有时没有传递参数,但是body data需要有“{}”才可以
6、在编写接口测试用例之前,常在postman中进行调试,常用的post接口在postman中几种格式,常用的有form-data、x-www-form-urlencoded、raw、binary,以下为四种格式的区别
7、当项目中登录方式为单点登录,无法使用jmeter去模拟登录(因为授权码无法获取),所以需要了解下关于单点登录、oAuth2.0授权码的相关内容,以下是基础内容整理
单点登录:
oAuth2.0授权码:
- 定义:Auth = Authorization,授权;O =open,开放,即开发授权
- 应用场景:通用应用在开放平台的环境
- 支持模式:
三、常用方法:(非原创)
1、获取本月第一天以及最后一天
import java.text.SimpleDateFormat;
import java.util.Date;
import java.text.*;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//获取当前月第一天:
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 0);
c.set(Calendar.HOUR_OF_DAY,0);
c.set(Calendar.MINUTE,0);
c.set(Calendar.SECOND,0);
c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
String first = format.format(c.getTime());
vars.put("first",first);//第一个first是变量名,引用即可;第二个first是指将first的值赋到第一个first中去
//获取当月最后一天:
Calendar ca = Calendar.getInstance();
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
ca.set(Calendar.HOUR_OF_DAY,23);
ca.set(Calendar.MINUTE,59);
ca.set(Calendar.SECOND,59);
String last = format.format(ca.getTime());
vars.put("month_end",last);
使用方法:增加beanshell request ,将代码粘进去,然后直接引用即可