非框架的意思就是没进行封装嘛。。。。(没时间建设,赶工为主)
公司项目的查询接口,查出来的字段值和数据库查出来的字段值作比较,一致的就通过。
注意下面的代码这里
4、接口查询结果与数据库查询结果比较
因为数据库的字段和接口返回的字段存在大小写之分,所以不能直接比较。逐个比较
如果字段一样,请用下面的代码,key_list是用于比较的字段
#key_list = ['id', 'cid', 'aid', 'gid','typeTwoId','typeTwoName','magNickname','magName','magIdCard','magEmail']
# for key in key_list:
# for i in range(len(place_data)):
# if place_data[i][key] == results[i][key]:
# print(key,"第",i,"次匹配")
下面是接口测试的源代码:
# -*- coding: utf-8 -*-
# @Time : 2020/11/17 11:38
# @Author : Liqiju
# @File : place_list_query.py
# @Software : PyCharm
import requests
import json
import pymysql
client_id = "android-place-client"
client_secret = "android-place-secret-8888"
username ="regionAdmin03"
password ="123456"
grant_type ="password"
refresh_token =""
#测试环境
ip = "http://XXX.XXX.XXX.XX:XXXX"
######################1、获取token################################
url =ip+"/api/auth/oauth/token"
data = {"client_id":client_id,"client_secret":client_secret,"username":username,"password":password,"grant_type":grant_type,"refresh_token":refresh_token}
headers = {"Content-Type":"application/x-www-form-urlencoded"}
res = requests.post(url=url,data=data,headers=headers)
#print("返回的Token字符串数据:\n",res.text)
res_data = res.text
dict_res = json.loads(res_data)
access_token = dict_res['data']["access_token"]
#print("access_token是:\n",access_token)
########################2、查询场所列表#############################
print("开始验证网格员查询场所列表接口。。。")
print("网格员名字是",username)
url_grid =ip+"/api/fob/places/list"
data = {"currentPage":1,"pageSize":20,"grade":""}
Authorization = "bearer "+access_token
headers = {"Authorization":Authorization}
res1 = requests.get(url=url_grid,params=data,headers=headers)
#print("场所列表查询成功,返回字符串数据:\n",res1.text)
res1_data = res1.text
dict_res1 = json.loads(res1_data)
place_data = dict_res1["data"]["list"]
#place_data = str(place_data).lstrip('[').rstrip(']')
print("----处理后的场所数据----:\n",place_data)
#print("第一个数据:\n",place_data[0]['id'])
#print("处理后的场所数据类型是:\n",type(place_data))
########################3、数据库查询#############################
db = pymysql.connect('XXX.XXX.XXX.XX', 'root', 'yelink123456', 'ifp_user') # 建立数据库连接
cursor = db.cursor() # 创建一个游标对象cursor
# SQL查询语句
sql = ("SELECT unit_name from sys_users where user_name ='%s'")%username
try:
# 执行sql语句
cursor.execute(sql)
# 获取所有记录列表
result = cursor.fetchone()
result = result[0]
# print("ifp_user表查询成功,社区名字是:\n",result)
# print(type(result))
except:
print("查询出错")
# 关闭数据库连接
db.close()
#####++++++++++++++++++++++++++++++++++++++++++
db_facilities = pymysql.connect('XXX.XXX.XXX.XX', 'root', 'yelink123456', 'ifp_model') # 建立数据库连接
sql_1 = "SELECT id,cid,aid,gid,type_two_id,type_two_name,mag_nickname,mag_name,mag_id_card,mag_email FROM ifp_facilities where g_name ='桥头社区' ORDER by id desc"
#cursor1 =db_facilities.cursor()
cursor1 =db_facilities.cursor(pymysql.cursors.DictCursor)
try:
# 执行sql语句
cursor1.execute(sql_1)
# 获取所有记录列表
results = cursor1.fetchall()
print("ifp_facilities表查询成功,查询的结果是\n",results)
# print("该数据类型是:\n",type(results))
# print(results[0][0])
except:
print("查询出错")
# 关闭数据库连接
db_facilities.close()
########################4、接口查询结果与数据库查询结果比较#############################
print("进行数据库字段比对。。。。")
#key_list = ['id', 'cid', 'aid', 'gid','typeTwoId','typeTwoName','magNickname','magName','magIdCard','magEmail']
# for key in key_list:
# for i in range(len(place_data)):
# if place_data[i][key] == results[i][key]:
# print(key,"第",i,"次匹配")
for i in range(len(place_data)):
if place_data[i]['id'] == results[i]['id']:
print("第",i+1,"个场所的场所id校验比对通过")
if place_data[i]['cid'] == results[i]['cid']:
print("第", i + 1, "个场所的单位id校验比对通过")
if place_data[i]['aid'] == results[i]['aid']:
print("第", i + 1, "个场所的区域id校验比对通过")
if place_data[i]['aid'] == results[i]['gid']:
print("第", i + 1, "个场所的网格id校验比对通过")
if place_data[i]['typeTwoId'] == results[i]['type_two_id']:
print("第",i+1,"个场所的设施类型2id校验比对通过")
if place_data[i]['typeTwoName'] == results[i]['type_two_name']:
print("第", i + 1, "个场所的类型2名称校验比对通过")
if place_data[i]['magNickname'] == results[i]['mag_nickname']:
print("第", i + 1, "个场所的负责人真实姓名校验比对通过")
if place_data[i]['magName'] == results[i]['mag_name']:
print("第", i + 1, "个场所的经营人账号校验比对通过")
if place_data[i]['magIdCard'] == results[i]['mag_id_card']:
print("第", i + 1, "个场所的经营人身份证号码校验比对通过")
if place_data[i]['magEmail'] == results[i]['mag_email']:
print("第", i + 1, "个场所的经营人邮箱校验比对通过")
print("-----------------------------------------------")
print("接口测试通过。。。。")
看看结果:
OK。下一步分享增加接口、删除接口、更改接口。
2020年11月20日
---------------------------------------------------------------
2020年11月23号更新。
第72行代码没有把上面的变量赋值在SQL里。
正确代码如下
sql_1 = ("SELECT id,cid,aid,gid,type_two_id,type_two_name,mag_nickname,mag_name,mag_id_card,mag_email FROM ifp_facilities where g_name ='%s' ORDER by id desc")%result
关于字符串提取变量的方法请移步python 字符串里面提取变量的方法。