接到开发接口的任务,写完后不知对错,就想到找一个接口测试工具测一测。接口测试工具有很多,比如Swagger、SoapUI、Jmeter、Postman等,本文着重讲述Postman的安装与使用。
1.Postman的安装
Postman的官方下载地址为https://www.getpostman.com/apps,在这里,你可以根据自己的需求直接下载相应的exe文件,达到一键安装的效果。
2.Postman测试WebService接口
(1)设置url
一般就是访问项目中的asmx文件。
(2)设置请求模式:post
(3)设置Header
为防止出现中文乱码,数据编码格式为UTF-8。所以添加Content-Type,值为text/xml;charset=utf-8。
(4)设置Body
勾选raw, 因为WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明 HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。这边需要指定传输数据的类型,选择XML(text/xml)格式。
接口定义的请求格式复制到Body中,并且填上必要的参数,例子如下:
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <UniteBudgetManage xmlns="http://tempuri.org/"> <budgetManageCriteria> <AccountCode>123456</AccountCode> <BudgetDeptCode>SMCV-MAN10</BudgetDeptCode> <Year>2018</Year> <BlockAmount>8989</BlockAmount> </budgetManageCriteria> </UniteBudgetManage> </soap:Body> </soap:Envelope>
其中UnitBudgetManage是方法名,budgetManageCriteria为该方法中的参数,它是一个对象,包含BudgetType、CheckorBlock等属性。
一切设置完成后,点击 send 按钮就可以了。
3.Postman测试WCF接口
(1)设置url
一般访问的是对应的svc文件,加上相应的方法名。
其中UnitBudgetManage是对应的UrlTemplate。
(2)设置请求模式:post
(3)设置Header:添加Content-Type,值为text/xml;charset=utf-8
(4)设置Body
勾选raw,以JSON(application/json)格式进行传输。Body中输入需要传输的JSON格式的数据。例子如下,
{ "Service": { "Data": { "Request": { "BudgetType": "Account", "CheckorBlock": "Check", "BmEntity": [ { "AccountCode": "123", "BlockAmount": "1900", "BudgetDeptCode": "SMCV-MAN", "Year": "2018" }, { "AccountCode": "456", "BlockAmount": "4500", "BudgetDeptCode": "SMCV-GR", "Year": "2018" } ] } } } }
一切设置完毕后,点击 Send 按钮,这样就会调用指定的接口,并执行内部的方法,根据返回结果来测试功能的正确与否。
(5)返回结果
返回结果依然是JSON格式。
{ "Service": { "Data": { "Request": { "BmEntity": [ { "AccountCode": "123", "BlockAmount": "1900", "BudgetDeptCode": "SMCV-MAN", "Year": "2018" }, { "AccountCode": "456", "BlockAmount": "4500", "BudgetDeptCode": "SMCV-GR", "Year": "2018" } ], "BudgetType": "Account", "CheckorBlock": "Check" }, "Response": { "Code": "E0000000", "Desc": "科目预算金额不足:123-2018-SMCV-MAN预算金额不足", "Status": "FAIL" } } } } }