如何测试接口?首先你得知道如何开发接口。

news2024/11/25 0:49:43

接口测试:接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。(来自某百科)

笔者看了,对于接口测试还是一知半解,就像你要了解饭一样,你只了解从超市买回来,放进电饭煲,然后就等待饭好就行了??

你不需要知道大米是怎么来的吗?

同理,如果你想要测试好接口,那么你肯定需要知道接口是怎么被制造出来的,他的原理是怎么样的呢?

本文就将带着大家利用于python开发一些简单的restful风格的接口。

其中实用到:flask,flask-restful。这些读者都可以使用pip进行安装。

数据库用的是sqlite3。

首先我们需要创建数据:

1、创建数据库:test

2、在数据库中创建一张表:stu

3、创建二个字段:name(ps:这里设置成不能重复,当然现实中是可以重复的,这里只作为演示用。)、age(年龄)

表如图:


既然有了数据库,那么我们肯定需要对数据库存进行增删除改查。因此笔者封装了一个数据库操作的类。


import sqlite3


# 将游标获取的元组根据数据库列表转为字典表
def make_dicts(cursor, row):
    return dict((cursor.description[i][0], value) for i, value in enumerate(row))

class SqlHelper(object):
    def __init__(self):
        self.path = r"e:\test\test.db"

    # 打开数据库连接
    def get_db(self):
        db = sqlite3.connect(self.path)
        db.row_factory = make_dicts
        return db

    # 执行SQL语句,但不返回结果
    def execute_sql(self, sql, prms=()):
        c = self.get_db().cursor()
        c.execute(sql, prms)
        c.connection.commit()

    # 执行用于选择数据的SQL语句。
    def query_sql(self, sql, prms=(), one=False):
        c = self.get_db().cursor()
        result = c.execute(sql, prms).fetchall()
        c.close()
        return (result[0] if result else None) if one else result


db = SqlHelper()

注:

1、make_dicts  这个方法是为了让我们在查询数据的时候,返回给我们的结果,以字典的形式返回。其中key是列名,value是我们查询的值。

2、类里面封装了二个方法,其中一个执行不返回结果,一个是返回结果的。返回结果的有一个参数one。默认为false,指返回所有数据。如果为true则返回第一条数据。

接下来,我们就正式开始接口的开发了,这里我们开发二个接口:

1、查询学生信息

  path:'/get/stu/'

  parameter :name (学生的名字,不能为空)

2、添加学生到数据库

  path:'/add/stu/'

  parameter:name(学生的名字,不能为空)

        age(学生的年龄,不能为空)

from flask import Flask, jsonify
from flask.ext.restful import reqparse, Api, Resource
from db import db

app = Flask(__name__)
app.debug = True
api = Api(app)


parser_get = reqparse.RequestParser()
parser_get.add_argument('name', type=str, required=True, help='名字不能为空。')

#此方法主要是为了判断是否有重名数据
def is_data(name):
    sql = "select * from stu where name = ?"
    return db.query_sql(sql,(name,))


class get_stu(Resource):

    def get(self):
        data = parser_get.parse_args()
        name = data.get('name')
        if is_data(name) :
            return jsonify(is_data(name))
        return jsonify({'msg':'未找到此用户'})

parser_add = reqparse.RequestParser()
parser_add.add_argument('name', type=str, required=True, help='名字不能为空。')
parser_add.add_argument('age',type = int ,required=True, help = '年龄不能为空')

class add_stu(Resource):

    def post(self):
        data = parser_add.parse_args()
        name = data.get('name')
        age = data.get('age')
        if is_data(name):
            return jsonify({'msg':'名字重复了'})
        sql_i = "insert into stu(name,age) values (?,?)"
        db.execute_sql(sql_i,(name,age))
        return jsonify({'msg':'添加成功'})

api.add_resource(get_stu, '/get/stu/')
api.add_resource(add_stu, '/add/stu/')

if __name__ == '__main__':
    app.run()

以上就是关于查询和添加二个接口开发的全部代码,这里就不多解释了

这样,我们的接口就开发完成了,接下来大家就可以在前端调用这些接口,来增加和查询数据了。

见效果:

添加一个叫bokeyuan的人:

然后我们再查询一下这个人:

见数据库中的表:

是不是完美的实现了查询和添加的功能。

增删改查,我们实现了增和查,还有改和删,这些有兴趣的朋友可以试一下。

欢迎大家指证!!!!

2023最新Jmeter接口测试从入门到精通(全套项目实战教程)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1048761.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最全的QgraphicsEffect设置

在Qt中,QGraphicsEffect有四个子类,分别为QGraphicsBlurEffect, QGraphicsColorizeEffect, QGraphicsDropShadowEffect, and QGraphicsOpacityEffect,用于实现模糊、着色、阴影、透明度功能 下面就是对这四种功能以及效果做测试 1.QGraphicsB…

服务器搭建(TCP套接字)-libevent版(服务端)

Libevent 是一个开源的事件驱动库,用于开发高性能、并发的网络应用程序。它提供了跨平台的事件处理和网络编程功能,具有高性能、可扩展性和可移植性。下面详细讲解 Libevent 的主要组成部分和使用方法。 一、事件基础结构(event_base&#x…

26530-2011 地理标志产品 崂山绿茶

声明 本文是学习GB-T 26530-2011 地理标志产品 崂山绿茶. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了崂山绿茶地理标志产品的术语和定义、保护范围、分类、等级和实物标准样、要求、试 验方法、检验规则、标志、标签、包装、…

遥遥领先!探索Amazon CodeWhisperer魔力,你的私人AI编程助手!

本文目录 【前言】一、Amazon CodeWhisperer 功能概览1.1 强大的代码建议1.2 支持多种语言与IDE1.3 安全扫描 二、沉浸式体验使用Amazon CodeWhisperer实战开发代码2.1 Pycharm中快速导入Amazon CodeWhisperer2.2 使用CodeWhisperer快速构建Python代码2.3 Amazon CodeWhisperer…

26049-2010 银包铜粉 阅读笔记

声明 本文是学习GB-T 26049-2010 银包铜粉. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了银包铜粉的要求、试验方法、检验规则、标志、包装、运输、贮存、质量证明书以及合同 (或订货单)内容。 本标准适用于电子、机电、通讯…

汽车电子——产品标准规范汇总和梳理(信息安全)

文章目录 前言 一、整车 二、充电接口 三、诊断接口 四、远程接口 五、实施指南 总结 前言 见《汽车电子——产品标准规范汇总和梳理》 一、整车 《GB/T 40861-2021 汽车信息安全通用技术要求》 《GB XXXXX—XXXX 汽车整车信息安全技术要求》 《GB/T 41871-2022 信息…

华为再放大招!联合伙伴发布AI新人类,助力场景化大模型商用落地

原创 | 文 BFT机器人 随着人工智能技术的不断发展,我们正迎来一个全新的智能时代。在这个时代里,人工智能将在各个领域发挥重要作用,为人类带来更智能、便捷和高效的生活体验。为了加速人工智能的商用落地,华为联合伙伴发布了系列…

kafka各版本消息介绍

kafka各版本消息介绍 V0 offset:分区中的偏移量message size:消息大小crc32(4B):crc32校验值。校验范围为magic至value之间。magic(1B):消息格式版本号,此版本的magic值为0。attributes (1B):消息的属性。总共占1个字节,低3 位表…

IDEA社区版,真香!

IDEA(IntelliJ IDEA)是众多 Java 开发者的首选。 商业版的昂贵 IDEA 商业版(IntelliJ IDEA Ultimate)功能非常强大,能够满足 Java 开发的所有需求,但其高昂的价格…… 此时只能感叹,不是不想用…

学习在windows环境下定时执行python脚本的方法

学习在windows环境下定时执行python脚本的方法 一、准备Python脚本二、创建定时任务1、打开【任务计划程序】2、打开【创建任务】窗口3、创建任务一一常规4、创建任务一一触发器5、创建任务一一操作程序或脚本:添加参数:起始于: 7、创建任务一…

CAD/CAM/CAE SDK 国庆大放送:Eyeshot 2023.X Crack

创建、探索或编辑 3D CAD 数据 开发您自己的(独立的)CAD/CAM/CAE 应用程序,请选择合适自己的版本::关注我,得知全球最新最全的组件动态,这个sdk我们会一直持续更新到最新,跟着我们,你…

GAT学习

文章目录 GAT注意力机制的定义图注意力层多头注意力机制GATConv层中forward函数步骤解析:1. 计算wh。wh:带权特征向量2. 计算注意力分数e3. 激活注意力分数e4. 由边的索引获取邻接矩阵5. 获得注意力分数矩阵。 attention[i][j]表示i j之间的注意力分数torch.where详…

苹果发布iOS 17.1首个beta版本,新增了这几个新功能!

苹果今日向iPhone/iPad用户推送了iOS/iPadOS17.1开发者预览版Beta版更新,iOS/iPadOS17.1Beta内部版本号为21B5045h。 iOS/iPadOS17.1Beta更新内容如下: 一:Apple Music“已喜爱”分类 用户可以在 iOS 17.1 的 Apple Music 中收藏歌曲、专辑…

优化邮箱体验!推荐替代方案:提升企业效率的选择

近年来,随着互联网技术的快速发展,电子邮件成为了企业沟通和协作的重要工具。而作为国内知名的企业邮箱服务提供商,网易企业邮箱凭借其稳定性、安全性和易用性,受到了广大企业的青睐。然而,随着市场竞争的加剧&#xf…

26532-2011 地理标志产品 慈溪杨梅

声明 本文是学习GB-T 26532-2011 地理标志产品 慈溪杨梅. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了慈溪杨梅的术语和定义、地理标志产品保护范围、要求、试验方法、检验规则及标志、 标签、包装、运输和贮存。 本标准适用…

基于java的银行风险预警系统的研究与实现

文章目录 导文摘要:前言:绪论:相关技术与方法介绍:系统分析:系统设计:系统实现:系统测试:总结与展望:导文 基于java的银行风险预警系统的研究与实现 本文基于Java开发了一款银行风险预警系统,旨在帮助银行有效管理风险并提前预警潜在风险。下面将对文中的各个部分进行…

微信小程序 课程签到系统

目录 前端页面展示主页面我的课程个人中心评论功能签到功能课程绑定超级管理员页面 前端文件结构文件结构app.json前端架构和开发工具前端项目地址 后端后端架构后端项目地址 注意事项 前端页面展示 主页面 登录页面: 账号是:用户名或者手机号 密码是&a…

【Elasticsearch】聚合查询(四)

Elasticsearch(简称为ES)是一个基于Lucene的开源搜索和分析引擎,提供了丰富的聚合查询功能。聚合查询指的是在搜索结果上执行分组、汇总和统计等操作,以便从大量数据中提取有用的信息和洞察。 这篇文章主要介绍检索相关的操作&…

freertos的任务调度器的启动函数分析(根据源码使用)

volatile uint8_t * const pucFirstUserPriorityRegister ( uint8_t * ) ( portNVIC_IP_REGISTERS_OFFSET_16 portFIRST_USER_INTERRUPT_NUMBER ); 通过宏pucFirstUserPriorityRegister0xE000E400(根据宏名字,这是NVIC寄存器地址) 查手册…

26523-2022 精制硫酸钴 随笔练习

声明 本文是学习GB-T 26523-2022 精制硫酸钴. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了精制硫酸钴的要求、试验方法、检验规则、标志、标签、包装、运输和贮存。 本文件适用于精制硫酸钴。 注:该产品主要用于…