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
来源:oschina
链接:https://my.oschina.net/u/4326858/blog/4282422