python进阶-mock接口

Posted 笨笨的妞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python进阶-mock接口相关的知识,希望对你有一定的参考价值。

setting.py

MYSQL_HOST=192.168.127.139
PASSWORD=123456
PORT=3306
USER=root
DB=stu

tools.py

import pymysql,redis
from conf import setting
def op_mysql(sql):
    conn=pymysql.connect(host=setting.MYSQL_HOST,user=setting.USER,
                         passwd=setting.PASSWORD,
                         port=setting.PORT,db=setting.DB,
                         charset=utf8
                         )
    cur=conn.cursor(cursor=pymysql.cursors.DictCursor)
    cur.execute(sql)
    sql_start=sql[:6].upper()
    if sql_start==SELECT:
        res=cur.fetchall()
    else:
        conn.commit()
        res=ok
    cur.close()
    conn.close()
    return res

def op_redis(host,password,k,v=None,port=6379,db=0):
    r=redis.Redis(host=host,password=password,port=port,db=db)
    if v:
        r.set(k,v)#有传key就说明是set操作
        res=ok
    else:
        res=r.get(k)
        if res:#判断有没有get到数据
            res=res.decode()#没有传key就说明是get操作,如果传的key不存在返回None,None没有decode
        else:
            res=None
    return res

student.py

import flask,json#轻量级的web开发框架
from lib.tools import op_mysql
#接口 后台服务
server=flask.Flask(__name__) #返回python文件名,此处把python文件当成一个服务
#获取所有用户信息的接口
@server.route(/get_user,methods=[get,post])#装饰器,接受两个参数:路径/请求方式
def get_all_user():
    sql=select * from Student limit 10;
    res = op_mysql(sql=sql)
    response=json.dumps(res,ensure_ascii=False)#把list转化成jason
    return response#return 只能reture字符串


#添加学生的接口
@server.route(/add_user,methods=[post])#装饰器,路径/请求方式
def add_user():
    s_no=flask.request.values.get(s_no)#获得传入的参数
    sname = flask.request.values.get(sname)#获得传入的参数
    age = flask.request.values.get(age)
    sex = flask.request.values.get(sex)
    if s_no and sname and age and sex:#判断必填参数非空
        sql = "insert into Student values (‘%s‘,‘%s‘,‘%s‘,‘%s‘);" % (s_no,sname,age,sex)#添加学生的sql语句
        #sql ="INSERT INTO Student  VALUES (‘%s‘,‘%s‘,‘%s‘,‘%s‘);"%(s_no,sname,age,sex)
        res = op_mysql( sql=sql)#调用封装的mysql函数
        response={code:203,msg:成功了}#请求成功后返回的信息
    else:#必填项为空提示信息
        response = {code: 403, msg: 必填参数未填!}
    return json.dumps(response,ensure_ascii=False)#将response转化成jason返回,ensure_ascii=False,使中文正常显示,不指定的话,会显示中文对应的ascii

 

start.py

import sys,os
#os.path.dirname(__file__)
#print(sys.path)
BATH_PATH=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#取两次父目录 ,__file__代表当前目录,os.path.dirname取父目录
sys.path.insert(0,BATH_PATH)#加入环境变量
from lib.student import server
#server.run(port=8088,debug=True)
#想让别人访问,同一个局域网host=‘0.0.0.0‘,用实际的ip访问
server.run(port=8088,host=0.0.0.0,debug=True)

返回的信息是:

* Restarting with stat
* Debugger is active!
* Debugger PIN: 290-225-122
* Running on http://127.0.0.1:9999/ (Press CTRL+C to quit)

以 http://127.0.0.1:9999/add_user访问接口


 






以上是关于python进阶-mock接口的主要内容,如果未能解决你的问题,请参考以下文章

测试开发系列之Python开发mock接口

Mock接口数据 = mock服务 + iptable配置

python小记13:mock接口开发1

python接口自动化测试 - mock模块基本使用介绍

Python之mock接口开发

测试开发系列之Python开发mock接口