如何测试webservice和websocket接口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何测试webservice和websocket接口相关的知识,希望对你有一定的参考价值。

您好:WebSocket是html5新增加的一种通信协议,目前流行的浏览器都支持这个协议,例如Chrome,Safari,Firefox,Opera,IE等等,对该协议支持最早的应该是chrome,从chrome12就已经开始支持,随着协议草案的不断变化,各个浏览器对协议的实现也在不停的更新。该协议还是草案,没有成为标准,不过成为标准应该只是时间问题了,从WebSocket草案的提出到现在已经有十几个版本了,目前最新的是版本17,所对应的协议版本号为13,目前对该协议支持最完善的浏览器应该是chrome,毕竟WebSocket协议草案也是Google发布的。
1. WebSocket API简介
首先看一段简单的javascript代码,该代码调用了WebSockets的API。

[javascript] view plaincopy
var ws = new WebSocket(“ws://echo.websocket.org”);

ws.onopen = function()ws.send(“Test!”); ;

ws.onmessage = function(evt)console.log(evt.data);ws.close();;

ws.onclose = function(evt)console.log(“WebSocketClosed!”);;

ws.onerror = function(evt)console.log(“WebSocketError!”);;

这份代码总共只有5行,现在简单概述一下这5行代码的意义。
第一行代码是在申请一个WebSocket对象,参数是需要连接的服务器端的地址,同http协议使用http://开头一样,WebSocket协议的URL使用ws://开头,另外安全的WebSocket协议使用wss://开头。
第二行到第五行为WebSocket对象注册消息的处理函数,WebSocket对象一共支持四个消息 onopen, onmessage, onclose和onerror,当Browser和WebSocketServer连接成功后,会触发onopen消息;如果连接失败,发送、接收数据失败或者处理数据出现错误,browser会触发onerror消息;当Browser接收到WebSocketServer发送过来的数据时,就会触发onmessage消息,参数evt中包含server传输过来的数据;当Browser接收到WebSocketServer端发送的关闭连接请求时,就会触发onclose消息。我们可以看出所有的操作都是采用消息的方式触发的,这样就不会阻塞UI,使得UI有更快的响应时间,得到更好的用户体验。
参考技术A websocket是通信类,不是接口ok?websocket只要求对地址和端口连接就好了,客户端是要连接服务端的,不是你三言两语就测试了,网上有测试程序,自己找一下,有很多网址免费测试的,服务端连接输进去就可以了。
webservice是IIS服务,也要响应服务才可以,一般的浏览器就能直接输入地址看到,你要确定是webservice不是webapi哦。
参考技术B WebSocket是html5新增加的一种通信协议,目前流行的浏览器都支持这个协议,例如Chrome,Safari,Firefox,Opera,IE等等,对该协议支持最早的应该是chrome,从chrome12就已经开始支持,随着协议草案的不断变化,各个浏览器对协议的实现也在不停的更新。该协议还是草案,没有成为标准,不过成为标准应该只是时间问题了,从WebSocket草案的提出到现在已经有十几个版本了,目前最新的是版本17,所对应的协议版本号为13,目前对该协议支持最完善的浏览器应该是chrome,毕竟WebSocket协议草案也是Google发布的。
1. WebSocket API简介
首先看一段简单的javascript代码,该代码调用了WebSockets的API。

[javascript] view plaincopy
var ws = new WebSocket(“ws://echo.websocket.org”);

ws.onopen = function()ws.send(“Test!”); ;

ws.onmessage = function(evt)console.log(evt.data);ws.close();;

ws.onclose = function(evt)console.log(“WebSocketClosed!”);;

ws.onerror = function(evt)console.log(“WebSocketError!”);;

这份代码总共只有5行,现在简单概述一下这5行代码的意义。
第一行代码是在申请一个WebSocket对象,参数是需要连接的服务器端的地址,同http协议使用http://开头一样,WebSocket协议的URL使用ws://开头,另外安全的WebSocket协议使用wss://开头。
参考技术C 可以用SoapUI!SoapUI是测webservice的专业工具,不仅可以测试结果的正确性,还可以测试webservice的性能如果你用的是myeclipse我知道,myeclipse也可以测.webservice访问实际上就是一次http请求,那么也就是请求和响应.1.向webservice地址发送soap请求报文,2.webservice服务器返回soap结果报文.所以说测试也就是发送报文,然后看返回结果报文,返回正确,那么测试就成功了

js调用webservice接口

需求是这样的!用js模拟客户端去调用web服务接口!接口有请求参数和响应参数(都是string类型),如何发送请求参数(请求参数有多个,能否放在数组里一起发送如何实现?)给服务端,服务端响应的参数又如何在客户端(网页)显示哇?!最好有发送请求参数的实例代码~原理也说说吧各位亲!

js 主要用于做客户端处理,不与服务器打交道,你这个是与服务器端打交道了,属于特殊情况。你可以用 createobject 调用组件,从而实现与服务端通信。AJAX 、 JS 的ADO 数据库连接、JSON都是这样做的。追问

多参数用json咋用 举个例子吧

多参数用json咋用 举个例子吧

追答

这是JQUERY AJAX 中使用JSON的例子,第二个参数就是JSON的数据格式
$.getJSON("test.js", name: "John", time: "2pm" , function(json)
alert("JSON Data: " + json.users[3].name);
);

追问

json.users[3].name 这个是什么意思

追答

自定义的东西,这是其中一段。

参考技术A 网上的例子很多,随便搜一个就行,我刚才看了下,一片一片的追问

你说在发送请求的时候使用soap协议,具体怎么用啊?放在js代码里?那比如我现在有app_id 、user_id两个请求参数要发到服务端接口怎么实现哇? 网上的代码我不太理解呢

追答

下午给写个简单的例子,加上注释。我还就不相信非要用dwr了,别以为会个加密就牛B了

追问

高手求例子呜呜~

追答

把你的邮箱给我,我都写好注释了,你试着用一下,我只能按你说的模仿一个简单的,自己发布接口

追问

nothing80@yahoo.cn 3q哇~

追答

如果你的webservice方法的返回值是对象的话一定要将对象进行序列化

本回答被提问者采纳
参考技术B 请用ajax来做。单独用js是不可能的。推荐dwr3.0追问

不好意思啦~
求讲解哇~

参考技术C 路过··· 参考技术D <script type="text/javascript">
// 封装创建XMLHttpRequest对象
function createXMLHTTPObject()
var XMLHttpFactories = [
function () return new XMLHttpRequest() ,
function () return new ActiveXObject("Msxml2.XMLHTTP") ,
function () return new ActiveXObject("Msxml3.XMLHTTP") ,
function () return new ActiveXObject("Microsoft.XMLHTTP") ,
];
var xmlhttp = false;
for (var i = 0; i < XMLHttpFactories.length; i++)
try
xmlhttp = XMLHttpFactories[i]();

catch (e)
continue;

break;

return xmlhttp;

//封装异步请求函数
function request(url, callback, data)
var xmlHttp = createXMLHTTPObject();
if (!xmlHttp) return;
var method = (data) ? "POST" : "GET";
xmlHttp.open(method, url, true);
xmlHttp.setRequestHeader('User-Agent', 'XMLHTTP/1.0');
if (data)
xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xmlHttp.onreadystatechange = function ()
if (xmlHttp.readyState != 4) return;
if (xmlHttp.status != 200 && xmlHttp.status != 304)
alert('HTTP请求错误 ' + xmlHttp.status);
return;

callback(xmlHttp);

if (xmlHttp.readyState == 4) return;
xmlHttp.send(data);

</script>

<script type="text/javascript">
//定义请求地址
var mi = document.domain
var url = "http://ip-api.com/json/?lang=zh-CN";
//定义回调函数,参数为XMLHttpRequest对象
var callback = function (xmlHttp)
var info = xmlHttp.responseText;
var o = eval("(" + info + ")");

$("#michen").html("通过接口动态查询IP" + JSON.stringify(o));

//alert(info);
// alert(o[1].name);


//调用请求函数
request(url, callback);

</script>
<span id="michen"></span>

以上是关于如何测试webservice和websocket接口的主要内容,如果未能解决你的问题,请参考以下文章

如何测试webservice接口

如何测试webservice接口

.net websocket 如何发送消息给特定的客户端

如何通过 WebSockets 响应 Web 服务请求

js调用webservice接口

首次使用Restful进行webservice接口开发小结