jmeter与tcp和udp建立连接
1.jmeter 与tcp 建立连接
先启动一个tcp服务端
# -*- coding:utf-8 -*- #@Time : 2020/5/17 20:18 #@Author: 张君 #@File : server_test.py # encoding=utf-8 import socketserver import threading class MyTCPHandler(socketserver.BaseRequestHandler): def handle(self): while True: self.data = self.request.recv(1024).strip() cur_thread = threading.current_thread() print(cur_thread) if not self.data: print(u"客户端:%s 退出!" % self.client_address[0]) break print(u"%s 内容:%s" % (self.client_address[0], self.data.decode("utf-8"))) ## self.request.sendall(self.data.upper()+‘\n‘.encode("utf-8")) self.request.sendall(self.data.upper()+‘\n‘.encode("utf-8")) #转为大写字母后返回给客户端 # 可以加一个服务端断开的 if __name__ == "__main__": HOST, PORT = "", 8001 server = socketserver.ThreadingTCPServer((HOST, PORT), MyTCPHandler) print("启动了") server.serve_forever() #server.server_close()
客户端
# -*- coding:utf-8 -*- #@Time : 2020/5/17 20:17 #@Author: 张君 #@File : client_test.py import logging, time, socket, struct, binascii target_host = "127.0.0.1" target_port = 8001 # AF_INET指定使用IPv4协议,如果要用更先进的IPv6,就指定为AF_INET # SOCK_STREAM指定使用面向流的TCP协议 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.connect((target_host, target_port)) for i in range(1): msg="zhangjun" client.send(msg.encode("utf-8")) response = client.recv(2048) logging.info("响应bytes是: {}".format(response))
jmeter模拟客户端
注意设置的eol 10(! 的 accsii码 ) 是因为客户端与服务端没有协商 怎么确定是关闭连接,所以客户端 会一直等待服务端发送响应,实际服务端已经发送完了, 所以客户端自己设置的,客户端自己来判断 算数据接收完,所以客户端使用! 就算接收完, 如果客户端不设置断开连接的表示,在结果书中会显示500
2.jmeter与udp 连接
udp 服务端
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind(("127.0.0.1", 3600)) print("UDP bound on port 3600...") while True: data, addr = s.recvfrom(1024) print("Receive from %s:%s" % addr) if data == b"exit": s.sendto(b"Good bye!\n", addr) continue s.sendto(b"Hello %s!\n" % data, addr)
jmeter 模拟客户端连接
IP:服务端IP ,UDP服务的端口 response timeout:超时时间, decode class:kg.apc.jmeter.samplers.UDPSampler request data:返回内容
服务端收到的内容
客户端收到的服务端内容:
我上传了我做的一些demo,主要是一些control
链接:https://pan.baidu.com/s/1bRFUgEdLebGvgGPoyTSkHw
提取码:1t72