线性编程04--验库/落库检查
验库 -- 检查落库的正确性
功能:用于检查数据库数据的正确性
场景:常用于增加、修改、删除了数据库数据时
1)验库的步骤
导入模块
a)连接数据库
b)指定sql语句
查询数据库中关键数据的行数,根据行数判断落库是否正确
c)执行sql语句
cursor=conn.cursor()
不能多次使用cursor(),因为这会创建多个游标
cursor.execute(sql,userinfo)
执行结果在cursor中
result=cursor.fetchone()
取游标中的第一行数据,存到元组result中
d)获得数据库结果(行数据或行数)
查询数据时,commit可以省略
e)比对数据库预期与实际结果
关闭数据库连接
针对注册接口进行验库
"""
编写正常注册接口的请求代码,检查响应结果和数据库正确性
接口需求
接口地址:http://192.168.139.137/exam/signup/
方法:post
参数:username,password,confirm,name
返回值:json类型,注册成功
用例 用户名 密码 确认密码 预期
test02 123456 123456 {'Status': 1000, 'Result': 'Success', 'Message': '注册成功'}
"""
import requests, pymysql
try: # 尝试
# 1.数据库初始化
# 1)连接数据库
conn = pymysql.connect(host='192.168.139.137', user='root', password='123456', db='exam')
# 2)创建游标
cursor = conn.cursor()
# 3)指定sql语句(初始化时,主要是增删改)
sql = "delete from user where username='test02'"
# 4)执行sql语句
cursor.execute(sql)
# 5)提交数据到数据库(保存数据)
conn.commit()
# 6)关闭数据库
conn.close()
# 2.发送请求
# 1)指定接口地址和参数
address = "http://192.168.139.137/exam/signup/"
argument = {"username": "test02", "password": "123456", "confirm": "123456"}
# 2)发送数据到接口,接收响应结果
res = requests.post(url=address, data=argument)
# 3.验证响应结果
expect = {'Status': 1000, 'Result': 'Success', 'Message': '注册成功'}
actual = res.json()
if expect == actual:
print("测试通过")
else: # 脚本自己要测试一下,if这里叫判定覆盖
# \n回车 \t 空格 tab键
print("测试失败==\n\t预期:", str(expect), '==\n\t实际:', str(actual), '==')
# 4.验库
# 1)连接数据库
conn = pymysql.connect(host='192.168.175.128', user='root', password='123456', db='exam')
# 2) 创建游标
cursor = conn.cursor()
# 3) 指定sql语句
sql = "select count(*) from user where username = 'test02' and password = '123456'"
# 4)执行sql
cursor.execute(sql) # 查询的结果一般保存,增删改不存,结果为元组形式
actual = cursor.fetchone() # 获得查询结果中的一行,类型为元组
# 5)检查落库
expect_db = 1
if actual[0] == expect_db:
print("落库检查通过")
else:
print("落库检查失败")
conn.close()
except Exception as e: # 排除,特殊情况,错误情况,异常
print(e) # 打印异常信息
测试注册接口
"""
编写信息不全时注册接口的请求代码,检查响应结果和数据库正确性
接口需求
接口地址:http://192.168.175.128/exam/signup/
方法:post
参数:username,password,confirm,name
返回值:json类型,注册成功
用例 用户名 密码 确认密码 预期
test06 123456 "" {'Status': 1001, 'Result': 'Input Incomplete', 'Message': '输入信息不完整'}
"""
import requests,pymysql
# 延时 -- 编写数据库需要时间 加入等待时间
from time import sleep
try:
conn = pymysql.connect(host='192.168.139.137',user='root',password='123456',db='exam')
cursor = conn.cursor()
sql = "delete from user where username='test06'"
cursor.execute(sql)
conn.commit()
conn.close()
sleep(3)
url = "http://192.168.139.137/exam/signup/"
data = {"username":"test06","password":"123456","confirm":"",'name':'测试06'}
r = requests.post(url,data)
expect = {'Status': 1001, 'Result': 'Input Incomplete', 'Message': '输入信息不完整'}
if expect == r.json():
print("测试通过")
else:
print("测试失败")
sleep(3)
conn = pymysql.connect(host='192.168.175.128',user='root',password='123456',db='exam')
cursor = conn.cursor()
sql = "select count(*) from user where username='test06' and password='123456'"
cursor.execute(sql)
actual = cursor.fetchone() # 获得查询结果中的一行,类型为元组
print(actual)
expect_db = 0
if expect_db == actual[0]:
print("落库成功")
else:
print("落库失败")
conn.close()
except Exception as e:
print(e)
本文来自博客园,作者:暄总-tester,转载请注明原文链接:https://www.cnblogs.com/sean-test/p/15514094.html

浙公网安备 33010602011771号