测试开发系列之Python开发mock接口(二)
上一篇咱们已经把开发前的环境准备好了,还需要再做一点准备,你的账户信息是存在哪的呢,当然是存在数据库里的,咱们在去支付,扣钱的时候,肯定是从数据库里面操作的,去更新账户表里面的数据,所以咱们先要把数据库准备好,建好账户表,初始化几条账户信息,这样才能完整的把这个mock接口给完成。
这篇咱们就学习一下python怎么操作数据库,怎么执行sql,数据库使用sqlite,sqlite是一个跨平台开源的轻量级关系型数据库,不需要配置和安装直接就可以使用,sql语句和mysql、sqlserver、oracle等数据库都是一样的。
首先创建一个数据库,然后把账户表创建好,插入几条初始化数据,这里要用到navicat这个工具,或者其他sqlite可视化工具也可以,navicat安装包连接为 http://pan.baidu.com/s/1eRArvAM ,打开navicat后连接选择sqlite,然后选择新建SQLite3数据库,选择一个路径,输入数据库名字就把数据库创建好了,然后选择刚才新建的数据库,新建查询,执行sql就可以了,截图看下面。
创建数据库
执行sql

数据库的初始化准备已经做好了,下面就要建表和插入一些初始数据,要不然写接口的时候没数据测试了,支付肯定是操作的账户表,所以要创建账户表,里面得有账户id,用户id和用户的余额这三个字段,表结构也设计好了,然后出入一点数据,方便后面自测的时候使用,sql如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
-- 建表的sql
CREATE TABLE "accounts" (
"account_id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"user_id" INTEGER,
"money" INTEGER
);
-- 插入数据的sql
INSERT INTO "accounts" ("user_id", "money") VALUES (1, 1111.98);
INSERT INTO "accounts" ("user_id", "money") VALUES (2, 981);
INSERT INTO "accounts" ("user_id", "money") VALUES (8, 8888);
INSERT INTO "accounts" ("user_id", "money") VALUES (9, 889211.1);
INSERT INTO "accounts" ("user_id", "money") VALUES (19, 1.2);
|
表结构也创建好了,数据也有了,下面就要使用python来操作数据库了,很简单,就是执行sql而已,代码如下,每行都加了注释
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#s.py
import sqlite3
#操作sqlite使用sqlite3模块,上面是导入这个模块
db = sqlite3.connect('my.db')
#连接数据库,指定数据库的路径,如果数据库的路径和这个python文件在同一个路径下的话,直接写名字就可以了
#如果不在同一个路径的话,就写数据库文件的绝对路径,例如这样的C:\Users\Sabri\Desktop\my.db
course = db.cursor()
#创建游标,就相当于创建一个数据库里面的工作人员去工作,从数据库里拿东西改东西一样
course.execute('select * from accounts;')
#游标执行sql语句,相当于让刚才创建的那个工作人员去执行sql语句
res = course.fetchall()
#获取sql执行结果,保存到res里面,res里面就是sql的执行结果
print(res)
#打印结果
course.close()
#关闭游标
db.commit()
#提交数据库事物,如果是update、insert、delete语句的话需要commit一下才可以生效,select不需要
db.close()
#做人有始有终,有打开就有关闭,关闭数据库连接
|
本篇咱们学习sqlite的简单使用以及python怎么操作SQLite,每天进步一点点,快去试试吧,下篇咱们正式开始写接口![]()
测试开发系列之Python开发mock接口(二)的更多相关文章
- 测试开发系列之Python开发mock接口(一)
什么是mock接口呢,举个栗子,你在一家电商公司,有查看商品.购物.支付.发 货.收获等等等一大堆功能,你是一个测试人员,测测测,测到支付功能的时候,你就要调用第三方支付接口了,真实支付,直接扣你支付 ...
- 测试开发系列之Python开发mock接口(三)
于进入主题了,前面的准备工作都已经做好了,下面就开始写逻辑的代码了,代码我已经写好了,每行都加了注释,不明白的可以留言. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 ...
- 《C#微信开发系列(3)-获取接口调用凭据》
3.0获取接口调用凭据 ①接口说明 access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.开发者需要进行妥善保存.access_token的存储至少要保留 ...
- (一)react-native开发系列之Mac开发环境配置
写在前面 在开始之前,先说下选择react-native的背景原因 最近一年来,公司为了节省开发成本,以及降低维护成本,指派我开始做起前端开发app的工作,我和公司的小伙伴们就开始了漫长的app开发之 ...
- iOS开发系列--App扩展开发
概述 从iOS 8 开始Apple引入了扩展(Extension)用于增强系统应用服务和应用之间的交互.它的出现让自定义键盘.系统分享集成等这些依靠系统服务的开发变成了可能.WWDC 2016上众多更 ...
- #2020征文-开发板#使用Python开发鸿蒙应用--2021.01.07直播图文
写在前面: 每年的过年前夕,手中的项目一定会告急...而自己又缺乏三头六臂七十二变等特技,所以只能在鸿蒙社区先消失一阵子了.今天再看社区的帖子,发现大家的进步可不一般,各种案例示例层出不穷,一片欣欣向 ...
- Android开发系列之搭建开发环境
接触Android好久了,记得09年刚在中国大陆有点苗头的时候,我就知道了google有个Android,它是智能机操作系统.后来在Android出1.5版本之后,我第一时间下载了eclipse开发工 ...
- 测试平台系列(71) Python定时任务方案
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 定时任务 定时任务,顾名思义: ...
- BizTalk开发系列(六) BizTalk开发简述
现在很多大型企业信息化程度很高,运行中的系统可达到数十乃至上百个.而大部分系统由于建设的时间.开发团队和技术 往往不相同,系统之间的大部分都是独立运行的.随着信息化建设的深入各系统之间的交互需求越来越 ...
随机推荐
- Python 解压序列、可迭代对象并赋值给多个变量
Python数据结构和类型 1.1 解压序列赋值给多个变量 现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量? 解决思路:先通过简单的解压赋值给多个变量,前提是变量的数 ...
- 【Qt】2.1 创建对话框
QDialog是Qt对话框类,可以直接使用这个类来创建对象并显示出来. 要使用一个对话框,就这样子写: #include <QApplication> #include <QDial ...
- python基础面试题整理---从零开始 每天十题(02)
书接上回,我们继续来说说python的面试题,我在各个网站搜集了一些,我给予你们一个推荐的答案,你们可以组织成自己的语言来说出来,让我们更好的做到面向工资编程 一.Q:说说你对zen of pytho ...
- java设计模式基础 - 解决某一类问题最行之有效的方法,框架是大的设计模式.
一.单例模式(Singleton) 1.单例对象(Singleton)是一种常用的设计模式.在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在.这样的模式有几个好处: 1>某 ...
- JS原型链(二)--new运算符的原理
new运算符的原理: 第一步:创建一个空对象,该对象继承构造函数的原型对象 第二步:执行这个构造函数,并且把this指向该空对象 第三步:返回:如果构造函数执行后返回的结果是一个object类型,则返 ...
- Educational Codeforces Round 40千名记
人生第二场codeforces.然而遇上了Education场这种东西 Educational Codeforces Round 40 下午先在家里睡了波觉,起来离开场还有10分钟. 但是突然想起来还 ...
- Django ORM字段和字段参数
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...
- python爬虫入门四:BeautifulSoup库(转)
正则表达式可以从html代码中提取我们想要的数据信息,它比较繁琐复杂,编写的时候效率不高,但我们又最好是能够学会使用正则表达式. 我在网络上发现了一篇关于写得很好的教程,如果需要使用正则表达式的话,参 ...
- c#笔记2019-01-06
using System; using System.Collections.Generic; using System.Linq; using System.Text; /*2019-01-06C# ...
- HDU-4849 Wow! Such City!,最短路!
Wow! Such City! 题意:题面很难理解,幸亏给出了提示,敲了一发板子过了.给出x数组y数组和z数组的求法,并给出x.y的前几项,然后直接利用所给条件构造出z数组再构造出C数组即可,C ...