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

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

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

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

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

本文就将带着大家利用于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性能测试完整版】这可能是B站讲得最好的软件测试课程(Jmeter 接口测试实战 Loadrunner Tomcat综合教程)软件测试面试、自动化测试。

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

文档获取方式: 

加入我的软件测试交流群:822269834免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

 以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是线程安全问题?如何确保线程安全?进来看看就明白了!!

🌈🌈🌈今天给大家分享的是:什么是线程安全,在程序中多线程并发执行的时候,是否会产生线程不安全问题,以及如何解决线程不安全问题。 清风的CSDN博客 🛩️🛩️🛩️希望我的…

HarmonyOS 后台任务管理开发指南上线!

为什么要使用后台任务?开发过程中如何选择合适的后台任务?后台任务申请时存在哪些约束与限制? 针对开发者使用后台任务中的疑问,我们上线了概念更明确、逻辑结构更清晰的后台任务开发指南,包含具体的使用场景、详细的开…

“2024年国考公共科目”趣谈

黄金的熔点仅为1064.43C,不锈钢、耐高温钢所需的冶炼温度也仅需2000℃以上,因此与正在进行中的“2024年国考公共科目笔试”的“报名人数首破300万,平均约77人竞争一岗位”相比,炼金炼钢温度全都败落下风。 网络图片 其中宁夏的一…

Docker安装Elasticsearch以及ik分词器

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储您的数据,让您飞快完成搜索,微调相关性,进行强大的分析&#xff…

【导航控制器的基本使用 Objective-C语言】

一、导航控制器的基本使用 1.那接下来呢,我们就要讲解这个重中之重了啊,导航控制器,大家一定要注意听,那首先呢,我们先来看ppt,引导一下, 导航控制器.pptx,打开, 那接下来呢,我们就要学习这个多控制器的管理了, 里面的第一个内容,叫做导航控制器, 那今天呢,我们…

21款奔驰GLC300L升级HUD抬头显示 平视仪表信息

说起HUD抬头显示这个配置,最初是用在战斗机上的,它可以让战斗机驾驶员读取飞机的各种信息和状态,而无需移动头部,这样就能够有效的提高效率。但随着汽车技术的进步HUD这种配置也逐渐下放到民用车上。发展到今,车上的抬…

API接口的接入|数据服务化在京东的实践

导读 本次分享的主题为数据服务化在京东的实践,主要包含三个模块:数据服务化的缘起、成长、如何将系统做得更好。 01 缘起:数据服务化从 0 到 1 1. 缘起 京东数据智能部负责维护数据资产和对外提供数据服务,很多业务方要求我们…

vue+jsonp编写可导出html的模版,可通过外部改json动态更新页面内容

效果 导出后文件结果如图所示,点击Index.html即可查看页面,页面所有数据由report.json控制,修改report.json内容即可改变index.html展示内容 具体实现 1. 编写数据存储的json文件 在index.html所在的public页面新建report.json文件&#xff…

为什么单片机课要学 51+ 汇编,而不直接学 STM32?

为什么单片机课要学 51 汇编,而不直接学 STM32? 为什么单片机课要学 51 汇编,而不直接学 STM32? 这个没有规定一定要学那个51 汇编。 只能说C51更为简单、控制和理解硬件更为容易上手。 你可以在学习C51的时候,可以很容…

低功耗蓝牙模块在工业自动化中的创新应用

随着工业自动化的不断发展,低功耗蓝牙技术在工业环境中的应用正逐渐引起广泛关注。本文将深入探讨低功耗蓝牙模块在工业自动化中的创新应用,着重介绍其在传感器网络、设备监测和生产优化等方面的优势,以推动工业自动化向更高效、可靠、智能化…

网站优化进阶指南:如何用Python爬虫进行网站结构优化

前段时间一个做网络优化的朋友找我,问我能不能通过爬虫的手段对他们自己的网络进行优化。这个看着着实比较新颖,对于从事爬虫行业的程序员来说,很有挑战性,值得尝试尝试。 说白了使用爬虫进行网站优化需要对网站的结构、内容、链…

华为与夏普达成全球专利交叉许可协议 / 阿里巴巴发布千亿级参数的自研夸克大模型|魔法半周报

我有魔法✨为你劈开信息大海❗ 高效获取AIGC的热门事件🔥,更新AIGC的最新动态,生成相应的魔法简报,节省阅读时间👻 🔥资讯预览 华为与夏普达成全球专利交叉许可协议,5G领域领先地位再次得到认可…

Docker的基本概念和优势,以及在应用程序开发中的实际应用

文章目录 概要 基本概念 容器 (Container): 镜像 (Image): Dockerfile: 仓库 (Repository): 容器编排 (Orchestration): Docker Compose: Docker Daemon 和 Docker Client: 网络 (Network): 数据卷 (Volume): 主要优势 应用场景 小结 概要 Docker 是一种容器化平台,…

大数据之 Hadoop

hadoop主要解决:海量数据的存储和海量数据的分析计算 hadoop发展历史 Google是hadoop的思想之源(Google在大数据方面的三篇论文) 2006年3月,Map-reduce和Nutch Distributed File System(NDFS)分别被纳入到Hadoop项目&#xff0c…

webshell之字节码免杀

字节码生成 javac生成字节码 这种方式简单的说就是用ideal将java文件编程成class文件,然后将class读取出来用base64编码即可,这种方式比较方便简单,不需要会使用ASM,javassist等字节码框架。 Shell.java javassist生成字节码 j…

新手老师如何管理班级的日常工作

作为一名新手老师,管理班级的日常工作可能会是一项挑战,但以下是一些可能有用的建议: 建立良好的班级文化 班级文化是班级氛围的重要组成部分,对于学生的学习和成长具有重要影响。作为老师,要积极营造一种积极向上、团…

冒泡排序以及改进方案

冒泡排序以及改进方案 介绍: 冒泡排序属于一种典型的交换排序(两两比较)。冒泡排序就像是把一杯子里的气泡一个个往上冒一样。它不断比较相邻的元素,如果顺序不对就像水泡一样交换它们的位置,直到整个序列像水泡一样…

viple模拟器使用(四):unity模拟器中实现沿右墙迷宫算法

沿右墙迷宫算法 引导 线控模拟可以使得通过用户手动操作,实现机器人在模拟环境下在迷宫中行走(即:运动),算法可以使得机器人按照一定的策略自动行走,沿右墙迷宫算法就是其中的一种策略。 目的 运行程序后&…

C语言--求x的y次方【详细解释+代码优化】

一.利用库函数pow&#x1f357; pow函数的原型为&#xff1a; double pow(double base, double exponent); base为底数&#xff0c;exponent为指数&#xff0c;传入两个参数&#xff0c;返回值是计算的结果。需要引用头文件#include<math,h>. //方法一&#xff1a;利…

快捷键被占用了,这能忍吗?赶紧使用 OpenArk 找出元凶并干掉它!!!

文章目录 一、 问题&#xff1a;快捷键被占用了导致影响工作效率二、OpenArk 2.1 OpenArk简介 功能发布官方链接 2.2 下载OpenArk2.3 运行OpenArk2.4 被占用的热键元凶到底是谁&#xff1f; 三、总结 一、 问题&#xff1a;快捷键被占用了导致影响工作效率 你是否遇到过&#x…