接口测试总结

目的是:
1)移动端与服务器端的交互是否是通畅的;
2)服务器端返回的字段是否满足我们的要求;


在谷歌浏览器中进行接口测试(唯一的缺点是不能保存session值);
有时候需要拼接请求参数:请求地址?变量名=变量值&变量名=变量值;多个请求参数之间使用&分割.
使用火狐浏览器进行测试,能够保存session值的。


注意事项
1) 哪些接口能用,哪些接口不能满足移动端要求(做一下记录)?
2) 注意响应码(响应码的对比,大致可以确定是什么原因造成的)
3) 返回结果为json格式,和接口文档对比一下,是否是符合结果
4) 把api_key与api_token以参数的形式嵌入到请求中。
5) 测试url与正式的url; 每个接口的请求参数不一样;


移动端请求与服务器端响应,数据格式要保持一致,请求参数是json格式,响应结果也应该是json格式。


token值:对此的理解该api-token是服务器端接口分配给您的权限代码,与您在API上注册时使用的账户绑定。token是长度为32个字符的字符串,例如cb4f445e21954977b549b657a008df68。
每次您向专业版API发送请求时,都必须携带token,否则就会出现没有权限访问的错误码!


关于封装实体类:使用android studio自带的插件JSONFormat特别好用,速度特别快。


处理服务器端返回的json数据:首先判断返回的数据是否在主线程,如果不在主线程,还需要使用消息机制(Eventbus);

通过获取线程的id判断,如果当前线程的id是1,说明请求结果已经回到主线程。

//获取当前方法所在的线程 Thread thread = Thread.currentThread(); //打印出线程的id int id = (int) thread.getId(); Toast.makeText(this,id+"",Toast.LENGTH_LONG).show();

json解析是耗时操作,最好不要在主线程里面做,影响app的响应速度!
        //原来使用的Gson解析,现在很少用了
        Gson gson = new Gson();
        LoginEntity loginEntity = gson.fromJson(loginJson, LoginEntity.class);

直接使用网页版的在线接口测试工具:
http://tool.chinaz.com/Tools/httptest.aspx

// 测试登陆的接口 public static String object2JsonLogin() throws Exception { long currentTimeMillis = System.currentTimeMillis(); JSONObject obj = new JSONObject(); obj.put("api_key", apiKey); obj.put("time", currentTimeMillis); obj.put("api_token", getToken(serverSecret, currentTimeMillis)); obj.put("username","13024112588"); obj.put("password","000000"); obj.put("expires", 28800); return obj.toString(); } // 获取token private static String getToken(String serverSecret, long currentTimeMillis) throws Exception { Args.notBlank(serverSecret, "server Secret is not null"); StringBuffer s = new StringBuffer(); s.append(serverSecret); s.append(currentTimeMillis); return com.example.testinterfaceutils.UtilsRSACoder.SHA1(s.toString()); }

你可能感兴趣的:(安卓,接口测试,json解析,服务器交互)