测试开发系列之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开发简述
现在很多大型企业信息化程度很高,运行中的系统可达到数十乃至上百个.而大部分系统由于建设的时间.开发团队和技术 往往不相同,系统之间的大部分都是独立运行的.随着信息化建设的深入各系统之间的交互需求越来越 ...
随机推荐
- 思维 || Make It Equal
http://codeforces.com/contest/1065/problem/C 题意:给你n个高度分别为a[i]的塔,每次可以横着切一刀,切掉不多于k个塔,问最少切多少刀才能把塔切的都一样高 ...
- tomcat假死现象(转)
1.1 编写目的 为了方便大家以后发现进程假死的时候能够正常的分析并且第一时间保留现场快照. 1.2编写背景 最近服务器发现tomcat的应用会偶尔出现无法访问的情况.经过一段时间的观察最近又发现有台 ...
- 八 个优秀的 jQuery Mobile 教程
jQuery Mobile 是 jQuery 在手机上和平板设备上的版本.jQuery Mobile不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架.虽然j ...
- 电商技术中企业数据总线ESB和注册服务管理的区别
一.概述 1.什么是ESB 就是企业数据总线的意思,他的核心功能就是兼容各种协议接口,可以将数据在各种协议之间进行流转,并且可以针对数据格式进行编排转换. 异构系统,功能繁多,复杂 代表性的项目有:J ...
- 分布式mysql 和 zk ( zookeeper )的分布式的区别 含冷热数据讨论
zk ( zookeeper )的分布式仅仅指的是备份模式. 分布式 mysql 不仅仅要关注备份(从以往的半主,主主,到 paxos). (mysql 比 hbase 的region成熟, hdfs ...
- Git学习——创建与合并分支
分支概念 当前我们所在的分支是master(主分支),可以通过创建分支: git branch <branch_name> 创建完成后,可以查看当前的分支状态: git branch 当前 ...
- Springboot(二)-application.yml默认的配置项以及读取自定义配置
写在前面 ===== spring-boot 版本:2.0.0.RELEASE ===== 读取自定义配置 1.配置文件:sys.properties supply.place=云南 supply.c ...
- python爬虫基础08-selenium大全2/8-Chrome Webdriver启动选项
Selenium笔记(2)Chrome Webdriver启动选项 本文集链接:https://www.jianshu.com/nb/25338984 在Selenium中使用不同的Webdriver ...
- pytorch导入错误so: undefined symbol: _Z11libshm_initPKc
首先删除torch文件 或者直接卸载 删除会更彻底 https://blog.csdn.net/qq_37674858/article/details/88870124 但是会发现卸载重装pytorc ...
- LeetCode(103) Binary Tree Zigzag Level Order Traversal
题目 Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left ...