java前端怎么做测试_通过前端接口+java代码实现接口自动化测试

(简单记录,有问题请指出)直接用java语言对接口进行测试有很多便利的地方,比如说复杂的参数化、部署服务、扩展性等   下面我用两种方式简单列举下java直接往http接口发送参数,进行接口测试

一、方式一,简单不规范

此方法比较原始,最开始摸索的时候弄出来的

原理:

1.首先使用URL类创建URL对象

eb7a8dae74ce

创建URL对象

2.对指定url建立连接

eb7a8dae74ce

建立连接

3.设置相关属性,如请求方式、编码、参数类型等   类似http请求头的属性(可以通过F12在浏览器中查看)

4.创建输出流对象,并写入请求内容

eb7a8dae74ce

创建流对象

5.创建输入流对象,并从字符输入流读取文本,缓冲字符

eb7a8dae74ce

6.再使用in.readLine()方法存储字符内容

7.此时就得到了服务器响应数据,解析json验证参数即可

代码截图/详解

eb7a8dae74ce

代码截图

url = new URL(URL+"config/store/paymode/list");

传入url,创建URL对象。上面是域名+路径

URLConnection connection = url.openConnection();

创建连接

connection.setDoOutput(true);

设置运行输入属性

connection.setRequestProperty("contentType", "UTF-8");

设置请求编码格式

OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");

创建OutputStreamWriter对象传输字节流。OutputStreamWriter 对象和getOutputStream方法介绍可以查jdk详解

out.write("mcode="+Mocde()[0]+"&device_en="+Mocde()[1]);

通过流对象,写入数据。这里参数格式类似web页面上get请求所带的参数

out.flush(); //刷新流

out.close();//关闭流

BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));

创建输入流对象,并从字符输入流读取文本,缓冲字符

String line = null;

StringBuffer content= new StringBuffer();

while((line = in.readLine()) != null)

{

//line为返回值,这就可以判断是否成功、

content.append(line);

}

line参数用于临时存放返回的数据,content用于存放返回的全部数据,readLine方法表示读取一行数据。通过while循环读取数据,把一行数据存入line,再累加到content中,构成完整数据

JSONObject object=(JSONObject) JSONObject.parse(content.toString());

将返回值转换为JSONObject对象

object.getIntValue("code")==0

根据getIntValue方法参数名为code的值,并和做比较

JSONArray objectArray=object.getJSONArray("data");

将data节点的数据值转换为JSONArray 数组对象。后面在根据自己项目的业务逻辑判断值即可

方法二、简单,比较规范

此方法是在方法一的基础上进行了一些优化,应该也有不足之处,可以优化或者指出

原理

和方法一基本一致

代码截图/详解

eb7a8dae74ce

图1

eb7a8dae74ce

图2

用于存放服务端响应的数据,已转换为String类型的数据

String result = "";

//用于存放服务端响应的字节流数据

BufferedReader reader = null;

./创建URL对象

URL url = new URL(urlPath);

//openConnection方法创建连接对象

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

//设置请求方式

conn.setRequestMethod("POST");

//设置为运行输入

conn.setDoOutput(true);

//设置为运行输出

conn.setDoInput(true);

..........

//把String类型的数据转换为byte数组类型

byte[] writebytes = Json.getBytes();

// 设置文件长度,避免后面数据写入输出流时内容长度不一致

conn.setRequestProperty("Content-Length", String.valueOf(writebytes.length));

//getOutputStream方法获头字段和内容

OutputStream outwritestream = conn.getOutputStream();

//将数据写入此输出流

outwritestream.write(Json.getBytes());

//判断响应的状态码是否是200,200表示正常响应

conn.getResponseCode() == 200

//创建输入流对象,并从字符输入流读取文本,缓冲字符

reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));

//获取数据

reader.readLine();

然后返回result,校验结果即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值