SoapUi测试1——REST(WebAPi、Json协议/HTTP、Post通讯方式)接口测试
文章目录
- 1背景
- 1.1接口测试工具SoapUi产生背景
- 1.2常见接口类型
- 1.3接口包含内容
- 1.4请求格式
- 2软件使用
- 3http、webservice、webapi如何测试
- 3.1REST(WebAPi、JSON/HTTP、POST)
- 3.2SOAP(Webserver、XML/HTTP、POST)
1背景
1.1接口测试工具SoapUi产生背景
当服务器被开发出来,但是客户端(前端还未开发),此时需要使用接口测试工具进行接口测试。通过模拟客户端发送请求,同时接收服务器回馈结果,完成接口测试。
1.2常见接口类型
1.3接口包含内容
1.4请求格式
- json
{"method": "POST","url": "https://api.example.com/login","headers": {"Content-Type": "application/json"},"body": {"username": "test_user","password": "p@ssw0rd123","remember_me": true}
}
2.XML
<?xml version="1.0" encoding="UTF-8"?>
<request><param name="id">1001</param>
</request>
2软件使用
该软件包含两部分
通俗来说SOAP采用XML格式可以传输消息长,REST采用二进制编码传输快。
3http、webservice、webapi如何测试
3.1REST(WebAPi、JSON/HTTP、POST)
1. 生成服务器
这边有一个很好的博客,教如何创建REST的服务器,输入和输出均采用json格式。
2. 服务器限制报文格式
双击选中的Response1,点击底部的Scrip按钮,下拉会出现一个脚本文件。插入一下脚本内容。
// 获取请求内容
def requestContent = mockRequest.getRequestContent()// 定义响应模板
def buildResponse(success, message) {return ["success": success,"errMsg": message,"Data": ["PalletNo": "123456","ProductCode": "HY-DH144N8"]]
}try {def requestJson = new groovy.json.JsonSlurper().parseText(requestContent)// 验证逻辑...def errors = []if(!requestJson.EqpCode) errors << "缺少EqpCode"if(!(requestJson.FullQty in Integer)) errors << "FullQty必须为整数"if(!(requestJson.LotNumbers in List)) errors << "LotNumbers必须为数组"if(errors) {def response = buildResponse(false, "验证失败: " + errors.join(", "))mockResponse.setResponseContent(new groovy.json.JsonBuilder(response).toString())mockResponse.setResponseHttpStatus(400)} else {def response = buildResponse(true, "")mockResponse.setResponseContent(new groovy.json.JsonBuilder(response).toString())}} catch(e) {def response = buildResponse(false, "无效的JSON格式: " + e.message)mockResponse.setResponseContent(new groovy.json.JsonBuilder(response).toString())mockResponse.setResponseHttpStatus(400)
}
这样就可以限制报文输入类型为:
{
"EqpCode":"L1_BZ1",
"FullQty":36,
"LotNumbers":["H3501241015172300345","H3501241015172300346","H3501241015172300347"]
}
这个界面需要注意红色框中为空白,一切用脚本来写入即可。
3.3创建客户端
参考这边博文,很清楚说明了REST如何请求服务器
双击REST
写入http://localhost:8080/phone/blackphone
即可得到测试界面
3.2SOAP(Webserver、XML/HTTP、POST)
可以参考这一篇文章。