在大多数web应用中,需要先先登录才能正常调用接口,否则会报错403错误。在接口自动化中,该如何实现登录后调用接口的效果呢?
我是这样实现的。在我的分层接口测试框架中,有一般函数层和接口层。
在一般函数层里,我设计了2个类,一个是HttpRequest,这个是无状态的接口请求器,发送无状态的接口请求。一个是StatefulHttpRequest,这个是带登录状态的请求器,发送带登录状态的请求。StatefulHttpRequest是HttpRequest的子类,StatefulHttpRequest构造方法中的Attestation是获取token的接口。各个具体的、待接口测试的web应用可以实现这个接口,来获取token
附上我的代码:
ps:
public class StatefulHttpRequest extends HttpRequest{
private String token;
public StatefulHttpRequest(Attestation attestation, String username, String password) throws IOException {
this.token = attestation.getToken(username, password);
}
@Override
public JSONObject doGetJson(String url) {
try {
return doGetJson(url, null);
} catch (URISyntaxException e) {
e.printStackTrace();
return null;
}
}
public JSONObject do