需求
加入购物车:我们加入购物车的商品必须是库里存在且上架的,我们每次加入购物车的商品不同,才能判断加入购物车功能是否可用
接口代码
首先创建一个py文件,用来连接数据库,我这里创建了个conf.py
# -*- coding: utf-8 -*-
import pymysql #python连接mysql的驱动程序,需要用pip安装
#连接数据库
hostname = '192.168.*.*' #被连接的数据库服务器地址
username = 'root' #数据库账号
password = '123456' #账号密码
dab = 'student' #要连接的具体库名
conn = pymysql.connect(host=hostname, user=username, password=password, db=dab, charset='utf8')
cur = conn.cursor()
为什么取isbn呢,因为上边的接口里要求了,传的参数必须是isbn,所以,我这里取出来的就是isbn,具体取什么数据,需要看接口的要求。
最后再创建一个测试文件,名称为:shopping_api.py,在这个文件里边,我们把从数据库取出来的数据用上
import unittest
import requests
import json
import sys
sys.path.append('../')
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
from db_sql import * #导入取数据文件
class Test_Apicase(unittest.TestCase):
def setUp(self):
self.url = '
self.param = {
'loginName' : '15333333333', #登录账号
'loginPwd' : '123456' #密码
}
self.res = requests.post(self.url,params=self.param)
self.r = self.res.headers
self.token = self.r['api-token'] #这里是登录,因为加入购物车动作是针对某一个用户做的,所以得先登录
def test_10add_shop(self):
'''add_shopping''' #用例名
self.isbn = Sql_select().sql_addshopping() #这里是从数据库取数据
self.url = '
self.header = {
'api-token' : self.token
}
self.param = {
'isbn' : self.isbn #把从数据库取出来的数据放在这里当参数
}
self.res = requests.post(self.url,headers=self.header,params=self.param)
self.r = self.res.json()
print ('登录的账号是:%s\n密码是:%s' % ('15333333333','123456'))
print ('加入购物车的isbn是:%s\n返回值是:%s\n' % (self.isbn,self.r)) #这两个打印是为了有bug的时候有依据,建议大家打印出来,方便手动确认bug
self.assertEqual(200,self.r.get('code')) #断言
def tearDown(self):
pass
if __name__=='__main__':
suite = unittest.TestSuite()
suite.addTest(Test_Apicase('test_10add_shop'))
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)
|