jmeter简单实践(九)

简单版本的httpserver

json模块可能需要下载,详细方法请百度,增加个人的能力

主要是json的,接收到非json的http请求,返回"415, "Only json data is supported."

coding: utf-8

from http.server import BaseHTTPRequestHandler,HTTPServer
import cgi
import json

def Cjson(datas):
    try:
        messages = json.loads(datas)
    except ValueError:
        return False
    return True
class TodoHandler(BaseHTTPRequestHandler):
    """A simple TODO server

    which can display and manage todos for you.
    """

    # Global instance to store todos. You should use a database in reality.
    TODOS = []
    def do_GET(self):
        # return all todos

        if self.path != ‘/‘:
            self.send_error(404, "File not found.")
            return

        # Just dump data to json, and return it
        message = json.dumps(self.TODOS)

        self.send_response(200)
        self.send_header(‘Content-type‘, ‘application/json‘)
        self.end_headers()
        self.wfile.write(bytes(message,‘utf-8‘))

    def do_POST(self):
        """Add a new todo

        Only json data is supported, otherwise send a 415 response back.
        Append new todo to class variable, and it will be displayed
        in following get request
        """
        ctype, pdict = cgi.parse_header(self.headers[‘content-type‘])
        if ctype == ‘application/json‘:
            length = int(self.headers[‘content-length‘])
            dd = self.rfile.read(length)
            post_values =Cjson(str(dd,‘UTF-8‘))
            if post_values == False:
                print(dd)
                self.TODOS.append(str(dd, ‘UTF-8‘))
                self.send_response(200)
                self.send_header(b‘Content-type‘, b‘application/json‘)
                self.end_headers()
                jss = {
                    "code": 200,
                    "msg": "OK",
                }
                r = json.dumps(jss)
                self.wfile.write(bytes(r, ‘utf-8‘))
            if post_values == True:
                self.TODOS.append(json.loads(str(dd,‘utf-8‘)))
                self.send_response(200)
                self.send_header(b‘Content-type‘, b‘application/json‘)
                self.end_headers()
                jss = {
                    "code": 200,
                    "msg": "OK",
                }
                r = json.dumps(jss)
                self.wfile.write(bytes(r, ‘utf-8‘))
        else:
            length = int(self.headers[‘content-length‘])
            post_values = self.rfile.read(length)
            self.send_error(415, "Only json data is supported.")
            return

if __name__ == ‘__main__‘:
    # Start a simple server, and loop forever

    server = HTTPServer((‘localhost‘, 8888), TodoHandler)
    print("Starting server, use <Ctrl-C> to stop")
    server.serve_forever()

jmeter实践开始

1.在本地运行,注意不要将线程设置太大,机器抗不住,只能重启电脑了

2.主要用户简单的实战,看看自己的成果

  1. 运行上面的代码
  2. 创建线程组
  • Number of threads 1
  • Ramp-up Period 1
  • forever 1

  1. 创建http请求(第一种)
  • 发送表单
  • 内容看下面截图

  1. 创建http 请求头

    • ‘Content-type‘ ‘application/json‘
    • 内容看下图

创建聚合报告

查看结果树

创建汇总报告

开始执行

post的结果

疑问解答QQ群:群1:588402570,群2 772588688

 

群1 限制人数后,请申请群2

 

关注该公众号:持续更新Jmeter相关内容

 

原文地址:https://www.cnblogs.com/xiaoxiao-niao/p/9939749.html

时间: 2024-08-30 07:30:53

jmeter简单实践(九)的相关文章

k8s实践(九):Helm and Kubeapps UI

环境说明: 主机名 操作系统版本 ip docker version kubelet version helm version 配置 备注 master Centos 7.6.1810 172.27.9.131 Docker 18.09.6 V1.14.2 v2.14.3 2C2G master主机 node01 Centos 7.6.1810 172.27.9.135 Docker 18.09.6 V1.14.2 v2.14.3 2C2G node节点 node02 Centos 7.6.18

Android 设计随便说说之简单实践(合理组合)

上一篇(Android 设计随便说说之简单实践(模块划分))例举了应用商店设计来说明怎么做模块划分.模块划分主要依赖于第一是业务需求,具体是怎么样的业务.应用商店则包括两个业务,就是向用户展示applist,和下载app.第二是运行环境,在Android平台,有androidsdk提供socket等API支持.因此将模块大体换发了5个模块.(当然了图片加载可以额外提出,用开源组件去做,但是这里为了说明如何设计,暂不提到.还有下载也可以利用开源组件)分别是如下: 模块1 UI模块,负责展示信息和用

SQL知识以及SQL语句简单实践

综述 大家都知道SQL是结构化查询语言,是关系数据库的标准语言,是一个综合的,功能极强的同时又简洁易学的,它集级数据查询(Data Quest),数据操纵(Data Manipulation),数据定义(Data Definition),数据控制(Data Control)于一体 即: SQL语言包含4个部分: ※ 数据定义语言(DDL),例如:CREATE.DROP.ALTER等语句 ※ 数据操作语言(DML),例如:INSERT(插入).UPDATE(修改).DELETE(删除)语句 ※ 数

Mysql 备份恢复的简单实践

一.备份: 进行mysql的安装目录: 使用./mysqldump -u root -h 127.0.0.1 -P 3306 -p mysql>trymysql.sql 输入密码,备份成功. 二.恢复 进行mysql. 创建数据库 create database trymysql; 进入数据库 use trymysql ; 恢复 source trymysql.sql Mysql 备份恢复的简单实践

GDB 程序调试简单实践

用了好久的GCC/G++ 却一直都没用过GDB调试过程序,有时程序不是很大,一般有错,直接看编译器编译结果就差不多知道错在哪儿了,或者使用codeblocks单步调试,甚至回到windows下面调试,但是总是不太方便,因此有必要看一下GDB调试方法和基本步骤. 下面是一个简单的演示: 首先创建一个有错误的代码,如下: 这个程序很简单,目的是接受用户的输入,并将用户的输入回应输出来. 但是这个程序的第17行有个错误,使用了未初始化的字符指针name,因此编译运行后会出现段错误,如下: 下面利用GD

ZooKeeper分布式锁简单实践

ZooKeeper分布式锁的实现原理 在分布式解决方案中,Zookeeper是一个分布式协调工具.当多个JVM客户端,同时在ZooKeeper上创建相同的一个临时节点,因为临时节点路径是保证唯一,只要谁能够创建节点成功,谁就能够获取到锁.没有创建成功节点,就会进行等待,当释放锁的时候,采用事件通知给客户端重新获取锁资源.如果请求超时直接返回给客户端超时,重新请求即可. 代码实现为了更好的展现效果,我这里设置每个线程请求需要1s,请求超时时间为30s. 首先我们先写一个测试类,模拟多线程多客户端请

基于Spark的机器学习实践 (九) - 聚类算法

0 相关源码 1 k-平均算法(k-means clustering)概述 1.1 回顾无监督学习 ◆ 分类.回归都属于监督学习 ◆ 无监督学习是不需要用户去指定标签的 ◆ 而我们看到的分类.回归算法都需要用户输入的训练数据集中给定一个个明确的y值 1.2 k-平均算法与无监督学习 ◆ k-平均算法是无监督学习的一种 ◆ 它不需要人为指定一个因变量,即标签y ,而是由程序自己发现,给出类别y ◆ 除此之外,无监督算法还有PCA,GMM等 源于信号处理中的一种向量量化方法,现在则更多地作为一种聚类

Jmeter接口测试---JDBC简单实践

我的环境:MySQL:mysql-5.6.24-win32 jdbc驱动:mysql-connector-java-5.1.22-bin.jar JMeter:apache-jmeter-2.13 1.在 测试计划 中导入jdbc驱动 2.创建一个线程组,默认即可.如果业务需求可自行设置 3.创建一个jdbc连接设置.简单做了连接数据库的设置,如下图所示: 4.建立jdbc请求 5.添加一个 察看结果树,查看返回结果.执行操作,如下图所示: 简单随笔记录,仅以做参考.

php各种设计模式简单实践思考

前言 我一直觉得什么框架,版本,甚至语言对于一个coder来说真的不算什么,掌握一个特别高大上的一个框架或者是一个新的,少众的语言真的不算什么,因为你可以,我要花时间也可以,大家都是这样的.所以基本的显得额外重要,即是算法和数据结构,再就是好的设计模式了,,,听过一句话,是好的数据结构是让计算机更快的工作,而一个好的设计模式则是使开发者工作的更快! 单例模式 单例模式特点 $_instance 必须声明为静态的私有变量 构造函数和克隆函数必须声明为私有的,这是为了防止外部程序 new 类从而失去