「原创声明:保留所有权利,禁止转载」
接口框架的基础功能已经讲完了,接下来会分享一些接口测试实践。今天分享了接口一般的业务验证,注册用户和用户登录。借助开源社区提供的接口来做演示。写了一些测试脚本,针对独立性较高的接口测试项目如何快速验证。没有使用所谓数据驱动,也没有采用断言(使用预警代替),总的来讲,更像 BDD 一些。中间也用到了多接口相互验证的功能。
相信一万行代码的理论!
视频专题:
- FunTester 测试框架视频讲解(序)
- 获取 HTTP 请求对象 -- 测试框架视频讲解
- 发送请求和解析响应—测试框架视频解读
- json 对象基本操作 -- 视频讲解
- GET 请求实践 -- 测试框架视频讲解
- POST 请求实践 -- 视频演示
- 如何处理 header 和 cookie--视频演示
- FunRequest 类功能 -- 视频演示
接口测试中业务验证
gitee 地址:https://gitee.com/fanapi/tester
代码
package com.fun;
import com.alibaba.fastjson.JSONObject;
import com.fun.config.HttpClientConstant;
import com.fun.frame.httpclient.FanLibrary;
import com.fun.utils.RString;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.client.methods.HttpPost;
public class AR extends FanLibrary {
public static String APIKEY;
public static void main(String[] args) {
testDemo001();
testDemo002();
testOver();
}
public static void testDemo001() {
JSONObject funTester = registerUser("FunTester", RString.getString(10), RString.getString(10));
int code = funTester.getIntValue("code");
if (code != 400) fail();
}
public static void testDemo002() {
String name = "Fun" + getMark();
String pwd = RString.getString(10);
String remark = RString.getString(10);
JSONObject funTester = registerUser(name, pwd, remark);
int code = funTester.getIntValue("code");
if (code != 200) fail();
JSONObject result = funTester.getJSONObject("result");
String name1 = result.getString("name");
if (!name.equals(name1)) fail();
String remark1 = result.getString("remarks");
if (!remark.equals(remark1)) fail();
userLogin(name, pwd);
}
public static JSONObject registerUser(String name, String passwd, String remark) {
if (StringUtils.isEmpty(APIKEY)) developerLogin();
String url = "https://api.apiopen.top/registerUser";
JSONObject param = new JSONObject();
param.put("apikey", APIKEY);
param.put("name", name);
param.put("passwd", passwd);
param.put("nikeName", "FunTester");
param.put("headerImg", "http://pic.automancloud.com/sick-jvm-heap-1.png");
param.put("phone", "13100001111");
param.put("email", "Fhaohaizi@163.com");
param.put("vipGrade", "3");
param.put("autograph", "abc");
param.put("remarks", remark);
HttpPost httpPost = getHttpPost(url, param);
JSONObject response = getHttpResponse(httpPost);
output(response);
return response;
}
public static void register() {
String url = "https://api.apiopen.top/developerRegister";
JSONObject param = new JSONObject();
param.put("name", "FunTester");
param.put("passwd", "FunTester");
param.put("email", "Fhaohaizi@163.com");
HttpPost httpPost = getHttpPost(url, param);
JSONObject response = getHttpResponse(httpPost);
output(response);
}
public static void userLogin(String name, String pwd) {
if (StringUtils.isEmpty(APIKEY)) developerLogin();
String url = "https://api.apiopen.top/loginUser";
JSONObject param = new JSONObject();
param.put("name", name);
param.put("passwd", pwd);
param.put("apikey", APIKEY);
HttpPost httpPost = getHttpPost(url, param);
JSONObject response = getHttpResponse(httpPost);
output(response);
if (!(response.getIntValue("code") == 200)) fail();
}
public static void developerLogin() {
String url = "https://api.apiopen.top/developerLogin";
JSONObject params = new JSONObject();
params.put("name", "funtester");
params.put("passwd", "funtester");
HttpPost httpPost = getHttpPost(url, params);
httpPost.addHeader(HttpClientConstant.X_Requested_KWith);
httpPost.addHeader(getHeader("name", "FunTester"));
JSONObject response = getHttpResponse(httpPost);
output(response);
if (response.getIntValue("code") == 200) {
APIKEY = response.getJSONObject("result").getString("apikey");
} else {
fail();
}
}
}
-
郑重声明:文章首发于公众号 “FunTester”,欢迎关注交流,禁止第三方(腾讯云除外)转载、发表。
5技术类文章精选
无代码文章精选
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。
除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。
具体请参见TesterHome 知识产权保护协议。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。