首页编程websocket测试 如何使用WebSocket做接口测试

websocket测试 如何使用WebSocket做接口测试

编程之家2023-11-0289次浏览

大家好,今天我将向大家分享有关websocket测试和如何使用WebSocket做接口测试的一些独特见解,希望能够为你们带来新的思考和启示。

websocket测试 如何使用WebSocket做接口测试

如何判断websocket断开

法一:

当recv()返回值小于等于0时,socket连接断开。但是还需要判断 errno是否等于 EINTR,如果errno== EINTR则说明recv函数是由于程序接收到信号后返回的,socket连接还是正常的,不应close掉socket连接。

法二:

struct tcp_info info;

int len=sizeof(info);

getsockopt(sock, IPPROTO_TCP, TCP_INFO,&info,(socklen_t*)&len);

websocket测试 如何使用WebSocket做接口测试

if((info.tcpi_state==TCP_ESTABLISHED))则说明未断开 else断开

法三:

若使用了select等系统函数,若远端断开,则select返回1,recv返回0则断开。其他注意事项同法一。

法四:

int keepAlive= 1;//开启keepalive属性

int keepIdle= 60;//如该连接在60秒内没有任何数据往来,则进行探测

websocket测试 如何使用WebSocket做接口测试

int keepInterval= 5;//探测时发包的时间间隔为5秒

int keepCount= 3;//探测尝试的次数.如果第1次探测包就收到响应了,则后2次的不再发.

setsockopt(rs, SOL_SOCKET, SO_KEEPALIVE,(void*)&keepAlive, sizeof(keepAlive));

setsockopt(rs, SOL_TCP, TCP_KEEPIDLE,(void*)&keepIdle, sizeof(keepIdle));

setsockopt(rs, SOL_TCP, TCP_KEEPINTVL,(void*)&keepInterval, sizeof(keepInterval));

setsockopt(rs, SOL_TCP, TCP_KEEPCNT,(void*)&keepCount, sizeof(keepCount));

设置后,若断开,则在使用该socket读写时立即失败,并返回ETIMEDOUT错误

法五:

自己实现一个心跳检测,一定时间内未收到自定义的心跳包则标记为已断开。

websocket的并发连接性能测试用什么工具

websocket的并发连接性能测试用什么工具,解答如下

首先打开我们自己开发的websocket服务端,是它处于监听请求的状态。这里我们监听的IP127.0.0.1,端口29000

步骤阅读.2接着打开websocket压力并发测试工具,修改服务端IP跟websocket服务端一致127.0.0.1

步骤阅读.3最后,点击开始。就可以看到右边的连接结果,显示连接成功的连接数是10个,发送消息的次数是10次。说明正常连接和发送。

步骤阅读.4提示1:该websocket压力并发测试工具连接到服务端后,最先会发送一条消息,内容为“1”;

提示2:该websocket压力并发测试工具收到服务端任何应答时,都会自动回复一条消息,内容为“2”;

提示3:如在开发websocket上有何疑问,可来我的官网咨询,知无不言。

如何使用WebSocket做接口测试

如果遇见了一个全新的协议,怎么从零开始,完成接口测试?以 WebSocket为例。

WebSocket协议在2008年诞生,2011年成为国际标准。现在所有浏览器都已经支持了。WebSocket的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。

WebSocket的其他特点:

1.建立在 TCP协议之上,服务器端的实现比较容易。

2.与 HTTP协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP协议,因此握手时不容易屏蔽,能通过各种 HTTP代理服务器。

3.数据格式比较轻量,性能开销小,通信高效。

4.可以发送文本,也可以发送二进制数据。

5.没有同源限制,客户端可以与任意服务器通信。

6.协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。

· ws–>http(未加密)无证书

· wss–>https(加密)有证书

第一步:

很多时候第一反应向开发工程师求助,因为开发工程师基于新协议已经完成了接口开发,向开发工程师求助显然是最好的办法。找到一些学习脉络,包含了协议的说明文档、代码开发文档、实现代码等内容,了解协议的原理。向开发求助是个方法。

那么 WebSocket用 Fiddler怎么搞定?,其实主要就是修改了 Fiddler中 Rules下的 Customize Rules,如果感兴趣可以自己去搜一下。当面对陌生技术问题的时候,应该使用最熟悉的技术去尝试解决问题。虽然 Fiddler截获 WebSocket接口的办法,所截获的全部消息都在日志里面,根本无法操作。但是,可以借助 Fiddler分析 WebSocket的接口,一开始给 Fiddler这款工具的定位一样,那就是通过它辅助分析我们的被测接口。处理HTTP、HTTPS,推荐用Fiddler。

但是在处理TCP,UDP就用WireShark。Websocket是应用层协议,建立在 TCP协议之上,服务器端的实现比较容易。因为应用层是在传输层的基础上包装数据,所以我们还是从底层开始了解Websocket到底是个啥?是如何工作的?

可以通过---- wireshark(网络封包分析软件)抓包工具抓到WebSocket接口

wireshark下载地址:https://www.wireshark.org/download.html

以下是python实现的websocket接口连接。

如何使用ab对WebSocket服务器做并发性能测试

Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便。

工具/原料

Apache

方法/步骤

打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具。

在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程序。注意直接双击无法正确运行。

执行ab命令成功后,可以看到如图提示。该帮助很清楚详细的介绍了ab的用法以及各个参数的含义。

ab的用法是:ab [options] [http://]hostname[:port]/path

例如:ab-n 5000-c 200 http://localhost/index.php

上例表示总共访问http://localhost/index.php这个脚本5000次,200并发同时执行。

ab常用参数的介绍:

-n:总共的请求执行数,缺省是1;

-c:并发数,缺省是1;

-t:测试所进行的总时间,秒为单位,缺省50000s

-p:post时的数据文件

-w:以html表的格式输出结果

执行测试用例:ab-n 1000-c 100-w http://localhost/index.php>>c:\1.html

上面的测试用例表示100并发的情况下,共测试访问index.php脚本1000次,并将测试结果保存到c:\1.html文件中。

测试报告如图,可知在该100并发访问的情况下,共测试访问1000次,失败了852次。可知该脚本在此环境无法满足100并发访问的要求。

修改参数继续测试。测试并发50和30两种情况,由测试报告得知,在并发访问降到30时,错误的访问数降为39。

步骤阅读

关于websocket测试到此分享完毕,希望能帮助到您。

c 多线程?C语言能实现多线程么如何做品牌推广 怎样如何推广和宣传品牌