测试开发系列之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开发简述
现在很多大型企业信息化程度很高,运行中的系统可达到数十乃至上百个.而大部分系统由于建设的时间.开发团队和技术 往往不相同,系统之间的大部分都是独立运行的.随着信息化建设的深入各系统之间的交互需求越来越 ...
随机推荐
- java中regex参考
在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu ...
- luogu愚人节比赛划水记
先放链接:愚人节比赛 说好的 不毒瘤 呢?题目都太神奇了吧! 管理员的脑洞orz T1 这个可以说是蒙数据蒙出来的,直接输出"0",AC T2 本机房dalao成功发现" ...
- javascript顺序数组简单实现个二分查找
直接上码了注释写得很详细: function bsearch(A,x){ //l:查找范围左 r:查找范围右 let l = 0, //查询范围左边界 r = A.length-1, //查找范围右边 ...
- docker的网络(进阶)
overlay网络 overlay网络驱动程序会在多个docker守护程序(即多个主机上的docker守护程序)之间创建分布式网络.该网络(overlays)位于特定于主机的网络之上,允许连接到它的容 ...
- docker系列之file基本操作
dockerfile基础操作 Dockerfile 是记录了镜像是如何被构建出来的配置文件, 可以被 docker 直接执行以创建一个镜像. 它的样子: FROM ubuntu:14.04 MAINT ...
- 纯 CSS 创作一个表达怀念童年心情的条纹彩虹心特效
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/QxbmxJ 可交互视频教 ...
- VC++中char和TCHAR之间转换
char:计算机编程语言(c.c++.java等)中可容纳单个字符的一种基本数据类型. TCHAR:为了满足Unicode编码,对char的扩展,即_T(“str”)表示TCHAR类型 C++支持两种 ...
- MySQL 之Navicat Premium 12安装使用、pymysql模块使用、sql注入问题的产生与解决
本文内容提要: Navicat Premium 12 的介绍.使用. pymysql模块的使用 sql注入问题的产生与解决 -------------------------------------- ...
- python爬虫入门六:Selenium库
在我们爬取网页过程中,经常发现我们想要获得的数据并不能简单的通过解析HTML代码获取,这些数据是通过AJAX异步加载方式或经过JS渲染后才呈现在页面上显示出来. selenuim是一种自动化测试工具, ...
- PHP-redis命令之 字符串 (strings)
一.string (字符串) 1.set:设置键 $reids->set('mykey',111); 2.get:获取键 $redis->get('mykey'); 3.del:删除键 $ ...