我们在做接口测试时,除了常见的http接口,还有一种比较多见,就是socket接口,今天讲解下怎么用Python进行websocket接口测试。...on_error方法: def on_error(ws, error): print(error) 这个方法是用来处理错误异常的,如果一旦socket的程序出现了通信的问题,就可以被这个方法捕捉到...i in range(30): # send the message, then wait # so thread doesn't exit and socket...on_close方法: def on_close(ws): print("### closed ###") onclose主要就是关闭socket连接的。...如何创建一个websocket应用: ws = websocket.WebSocketApp("wss://echo.websocket.org") 括号里面就是你要连接的socket的地址,在WebSocketApp
在Linux内核中,Socket的实现分为三层,第一层是 GLIBC接口层,第二层是 BSD接口层,第三层是 具体的协议层(如Unix sokcet或者INET socket)。如下图所示: ?...BSD层在内核态实现,主要是为了让不同的协议能够使用同一套接口来访问而创造的,如上图所示, Unix socket 和 Inet socket 都可以通过接入 BSD接口层 来向用户提供相同的接口。...GLIBC接口层 GLIBC接口层 提供了一系列的接口函数供用户使用(可以成为 Socket族系统调用),如下: socket() bind() listen() accept() connect()...例如 socket() 接口用于创建一个socket句柄,而 bind() 函数将一个socket绑定到指定的IP和端口上。...主要的方式是 BSD接口层 定义了一些接口,具体的协议层 必须实现这些接口才能接入到 BSD接口层。
前言 在上一篇文章里面我们介绍了TCP的三次握手和四次挥手过程的介绍以及网络编程里面的一些api接口函数的介绍——Linux系统下socket编程之socket接口介绍(一)。...今天我们继续来介绍网络编程里面的其它接口函数,为实战打下 基础;网络编程专题文章拖的有点久,这两天全部把它写完,不能再拖了。...函数介绍 - 发送和接收 - (1)send和write: 首先说明的一点,之前介绍的socket这个函数,非常类似我们之前介绍的open函数,他们都会返回一下文件描述符;所以这里的send函数和write...函数作用类似,我们用man手册来查看它的具体形式和用法: #include #include socket.h> ssize_t send(int...(2)struct sockaddr,这个结构体是linux的网络编程接口中用来表示IP地址的 标准结构体,bind、connect等函数中都需要这个结构体,这个结构体是兼容IPV4和IPV6的。
使用php读取socket接口的数据,通过php传递请求方法和请求参数,得到返回结果 PHP文件: <?...); $res=@socket_connect($socket,self::IP,self::port); if(!...$res){ return; } socket_write($socket,$str); $result="";...while($data = socket_read($socket,1024)){ $result....=$data; } socket_close($socket); return $result; } } Test::main(); Java的Socket
在socket编程中,这一过程由客户端执行connect来触发(这个下面接口函数会有介绍的)。...二、什么是socket?...因为后面接口函数里面的参数就有这个socket描述符(如果你第一次看到这个可能就有点懵逼了,不知道为啥要有这个东西),其实它和我们之前一系列的文章里讲的文件描述符是一样的(文件描述符这里就不介绍了,前面对文件操作的文章里面已经很详细的介绍了这个...三、使用打电话的形式来介绍socket接口函数: 1、调用socket函数(安装电话机)时进行的通话: 问:"接电话需要准备什么?" 答:"当然是电话机!"...四、总结: socket编程中接收连接请求的套接字创建过程如下: 第一步:调用socket函数来创建套接字。 第二步:调用bind函数分配IP地址和端口号。
之前做过一些Socket接口的测试脚本,但是并没有对其中的响应结果进行自动化验证,主要还是靠人肉眼去检查。...前天完成了JSON对象的多功能验证类VerifyBean的代码,终于有时间做Socket接口的自动化验证了。...前情回顾: socket接口开发和测试初探 基于WebSocket的client封装 基于Socket.IO的Client封装 Socket.IO接口多用户测试实践 JSON对象标记语法验证类 Python...版Socket.IO接口测试脚本 这里先提一嘴:Groovy重载操作符**==** 的时候有个问题:在原生的项目里面使用obj == obj会调用obj对象的equal方法,但是如果把原生的项目打包成jar...INFO-> 关闭所有Socket客户端!
一、socket接口使用 1.1 socket抽象层 Linux内核net/socket.c定义了一套socket的操作api。图1展示了socket层所处与TCP/IP协议栈之上和应用层之下。...so_xxx: 内核相关socket操作接口。socket object操作协议栈的api入口。 in_pcballoc()。...tcp_attach(). tcp_xxx: tcp_close(), tcp_disconect(),tcp_drop() pr_xxx: 一套socket层和协议栈通信的接口,包括pr_usrreq...1.3 socket函数api 1.3.1 socket函数 功能:在内核创建一个socket对象,并返回引用的操作fd。...image.png 1.3.7 recv/read函数 功能:接收数据 实现:除了拷贝内核接收区的数据到应用层,还发送窗口更新信息给网络对端 注意:recv和send一样也提供了4套接口:recvfrom
由于接下来有一个聊天室需求的项目,所以在确定完技术方案后,就要开始着手socket协议的接口测试准备了。...看了好几个不同的socket client实现,就这个最简单。 大概抄了一下Demo的代码,但是问题来了,手头没有Websocket接口可提供测试的,着实有点尴尬。...我觉得本次socket协议接口测试的学习这两天,抄代码对我的意义主要两点:1、能够迅速掌握一种解决问题的方案。2、能够迅速掌握该框架的基本功能的使用。...INFO-> 开始建立socket连接... INFO-> 开始建立socket连接... WARN-> 世界喊话器 用户:FunTester2已经上线了!...INFO-> socket关闭... WARN-> 世界喊话器 用户:FunTester3已经离线了! INFO-> socket关闭...
经常遇到一些监听地址不是 IP:Port 而是 Unix Socket 的程序,这些程序如果使用的是 HTTP 协议,Unix Socket 接口也可以用 curl 访问的。...省略... } 用 curl 访问它的 Unix Socket 的方法如下: $ curl --unix-socket /tmp/nginx-status-server.sock http://localhost...77 server accepts handled requests 64273 64273 971368 Reading: 0 Writing: 12 Waiting: 65 这里 --unix-socket...参数是用来指定 Unix Socket 文件的地址, http://localhost/nginx_status 为要请求的路径。...可以根据实际情况更改成其它值但不可省略,如果省略后请求就变成 http://nginx_status,那么 nginx_status 会被认作是 Host,Path 被认为是 / $ curl -v --unix-socket
内容提要: 1.网络七层模型 2.什么是HTTP协议 3.什么是Socket接口 1.网络七层模型 ? ?...3.什么是Socket接口 Socket接口是对TCP/UDP协议封装的接口。 要想明白 Socket,必须要理解 TCP 连接。...Socket 是对 TCP/IP 协议的封装,Socket 只是个接口不是协议,通过 Socket 我们才能使用 TCP/IP 协议,除了 TCP,也可以使用 UDP 协议来传递数据。...创建 Socket 连接的时候,可以指定传输层协议,可以是 TCP 或者 UDP,当用 TCP 连接,该Socket就是个TCP连接,反之。...Socket为长连接:通常情况下Socket 连接就是 TCP 连接,因此 Socket 连接一旦建立,通讯双方开始互发数据内容,直到双方断开连接。
在学习了Socket协议的知识和完善固定QPS压测模型之后,打算对Socket.IO协议的接口进行一波压测实践,来验证自己写的功能是否存在BUG和更多能做的优化空间。...这里我取消了Socket.IO响应消息的打印,为了防止日志太多,导致性能下降。...INFO-> 学生:82951571513 socket链接关闭! INFO-> 关闭所有Socket客户端! INFO-> 测试不同压力下消息延迟进度: 0% INFO-> 补偿线程结束!...测试不同压力下消息延迟2009161 这里依然存在一些问题,如下: QPS计算出错,这里是因为补偿线程导致的,因为太快了,补偿线程应该处理的这些问题,哈哈,这个我在HTTP接口测试时候没有这个问题的。...参考文章: 固定QPS压测模式探索 固定QPS压测初试 性能测试中异步展示测试进度 基于Socket.IO的Client封装 Socket.IO接口多用户测试实践 Socket接口异步验证实践 ----
一、前言 曾几何时,HTTP这种应用层协议对于我来说有点高级,总觉得调用 HTTP 接口是一件很难实现的事情,需要用一个很牛逼的库才行。...直到昨天我学习了一个骚操作,原来用 socket 就可以直接玩 http,赶紧分享一波~ 开门见山,用socket玩转http接口就四步: ① 建立 tcp 链接; ② 发送请求数据(请求报文); ③...(图片来源于网络) 在嵌入式设备中通常是从返回结果中提取有效信息,并且大多数API接口返回都是json数据格式,所以不用过于关心响应报文。 话不多说,直接开干! 三、用网络调试助手测试 1....“测试前请保证socket可以正常通信。...感兴趣的读者可以再找点API接口玩玩哈哈~学业繁忙,告辞!
一、socket socket() 函数是进行网络编程的基础,它用于创建一个新的套接字(socket)。套接字是网络通信的端点,可以用于在不同计算机之间传输数据。...下面是对 socket() 函数的详细解释: #include #include socket.h> int socket(int domain, int type...// 初始化地址结构 address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; // 绑定到所有可用接口...初始化 sockaddr_in 结构,将地址族设置为 AF_INET,IP 地址设置为 INADDR_ANY(这意味着绑定到所有可用的接口),端口号设置为 8080(使用 htons() 函数将端口号从主机字节序转换为网络字节序...例如,SOL_SOCKET 表示通用套接字选项。常见的级别包括: SOL_SOCKET:适用于通用套接字选项。 IPPROTO_TCP:适用于 TCP 特定选项。
最近一直在做Socket接口测试的实践,一直用的都是Java或者Groovy语言编写的功能和脚本。...由于端上同事有在学习Python的,所以帮忙整理了一个Python版的Socket.IO接口测试脚本。...Java版的内容如下: socket接口开发和测试初探 IntelliJ中基于文本的HTTP客户端 基于WebSocket的client封装 基于Socket.IO的Client封装 Socket.IO...接口多用户测试实践 Gitee地址https://gitee.com/fanapi/tester GitHub地址https://github.com/JunManYuanLong/FunTester...首先要安装Socket.IO的包,Python版本是3.7,使用的pip方式进行安装,命令行如下:pip3 install python-socketio。这里网上教程很多,不多赘述。
完成Socket协议接口的调试之后,下一步继续进行Socket接口的业务测试了。...之前的Socket相关文章: socket接口开发和测试初探 基于WebSocket的client封装 基于Socket.IO的Client封装 思路 目前业务逻辑顺序如下: HTTP登录 通过token...import com.okayqa.socket.base.SocketBase import com.okayqa.socket.profile.OkayScoketConstant import...INFO-> 老师61951375269 socket链接关闭! INFO-> 学生81951375949 socket链接关闭! INFO-> 关闭所有Socket客户端!...Socket.IO接口测试 ---- 公众号「FunTester」,非著名测试开发,文章记录学习和感悟,欢迎关注,交流成长。
(DEFAULT_STRING) leaveRoom(roomId) ScoketIOFunClient.closeAll() } } 控制台输出 接口响应...业务关联接口验证 这里有一个关联接口,就是joinRoom接口,每次进入改房间的用户,都会收到一个wbFullDataNotify的通知信息,会把当前房间白板的状态和笔画细节推送给端上。...---- 2020年FunTester自我总结 避免PPT自动化的最佳实践 固定QPS压测初试 如何测试概率型业务接口 JSON对象标记语法验证类 无数据驱动自动化测试 测试模型中理解压力测试和负载测试...简化测试用例 敏捷测试二三事 自动化测试生命周期 moco固定QPS接口升级补偿机制 利用微基准测试修正压测结果 点击阅读原文,查看公众号历史文章- END -
一、socket模块 socket又叫套接字,是网络编程中的一个基本组件,是两个端点的程序之间的“信息通道”程序可分布在不同的计算机上(通过网络连接),通过socket套接字相互发送信息。...python中的大多数的网络编程都 隐藏了socket模块的基本细节。 python中通过socket模块完成网络编程的套接字实现,一个套接字就是socket模块中的socket类的一个实例。...socket实例化需要三个参数分别是family(ipv4,ipv6,unix)其中默认是ipv4 "socket.AF_INET",第二个参数是流,默认是socket.SOC_STREAM表示tcp,...socket通讯原理: ? socket函数 python 3.x下发送的内容必须是byte类型,2.x是字符串 ? ?...代码如下: 1、srv.py import socket sk = socket.socket() #print(sk) HOST = '127.0.0.1' PORT = 2222 BUFSIZ =
封装socket接口,方便后续的使用。...Socket模块介绍 Socket模块简单理解就是对socket套接字的封装,当然不是简单的对socket套接字接口的封装,还需要实现一些方法,比如启动非阻塞通信、创建客户端连接、创建服务器连接等。...由于这次服务器并不需要关心客户端的ip端口,并且在后续创建服务器连接的时候,服务器会绑定"0.0.0.0"所有可用的网络接口,因此填入NULL即可。...buf,size_t len) { if(len == 0) return 0; return Send(buf,len,MSG_DONTWAIT); } 9.接收数据 通过封装recv接口...当服务端绑定到这个地址时,它表示服务端将监听所有可用的网络接口(包括本地回环接口和所有配置的公网接口)。 ②通过绑定到 "0.0.0.0",服务端可以接受来自任何网络接口上客户端的连接请求。
Socket是对TCP/UDP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/UDP协议。...Receive: #coding=utf-8 import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定端口: s.bind...% data, addr) Send: #coding=utf-8 import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)...在发送数据之前,要先建立连接 Server: from socket import * from time import ctime HOST='' PORT=12345 BUFSIZ=1024 ADDR...=(HOST, PORT) sock=socket(AF_INET, SOCK_STREAM) sock.bind(ADDR) sock.listen(5) while True: print
Socket 据交换,这个双向连接的一端称为一个Socket java.net包中定义的两个类Socket和ServerSocket,分别用来实现双向连接的client和server端 建立连接时所需的寻址信息为远程计算机的...throws Exception{ ServerSocket ss = new ServerSocket(6666); while(true) { Socket...s = new Socket("127.0.0.1",6666); OutputStream os = s.getOutputStream(); DataOutputStream...try { ServerSocket s = new ServerSocket(6666); while(true) { Socket...socket = new Socket("localhost",6666); BufferedReader br = new BufferedReader
领取专属 10元无门槛券
手把手带您无忧上云