本文介绍: 作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试学习资源,希望能给你前进的路上带来帮助。返回结果的有一个参数one。笔者看了,对于接口测试还是一知半解,就像你要了解饭一样,你只了解从超市买回来,放进电饭煲,然后等待饭好就行了?同理,如果你想要测试好接口,那么你肯定需要知道接口是怎么被制造出来的,他的原理是怎么样的呢?这样,我们接口开发完成了,接下来大家可以前端调用这些接口,来增加和查询数据了。

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

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

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

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

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

其中实用到flask,flaskrestful。这些读者都可以使用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:testtest.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公众号:程序员雨果即可免费领取

原文地址:https://blog.csdn.net/yjt2045263063/article/details/134690110

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_7931.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注