zoukankan      html  css  js  c++  java
  • 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()+'
    '.encode("utf-8"))
                self.request.sendall(self.data.upper()+'
    '.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!
    ", addr)
            continue
        s.sendto(b"Hello %s!
    " % 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

  • 相关阅读:
    写给自己:青年员工交流会会议记录
    写给自己:金融小白的考证之路
    写给自己:入职初体验
    反欺诈体系
    政策&定价&风控审批策略
    你还在寻找Navicat的破解版本?你应该了解开源免费的DBeaver
    规则引擎在IoT的重要性?
    轻松上手SpringBoot Security + JWT Hello World示例
    Kafka 系列-1
    JDK14-ZGC调研初探
  • 原文地址:https://www.cnblogs.com/chongyou/p/12906975.html
Copyright © 2011-2022 走看看