前言
我们上一次分享了FastAPI(八十三)实战开发《在线课程学习系统》--登陆接口测试,这次我们看下登陆用户信息
正文
获取用户信息接口,那么我们看下FastAPI(六十七)实战开发《在线课程学习系统》接口开发--用户 个人信息接口开发接口的代码,那么我们根据设计测试用例。
1.首先未登陆,提示未登陆错误
2.登陆,获取用户信息
那么我们去写下对应的用例。
用例1很简单。
代码语言:javascript复制import unittest,requests
class UserGetCase(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
cls.url = 'http://127.0.0.1:8000/user/getcuruser/'
@classmethod
def tearDownClass(cls) -> None:
'''
还原测试环境,测试url
:return:
'''
cls.url = ''
def test_usernotLogin(self)->None:
reponse = requests.get(self.url)
status = reponse.status_code
reslut = reponse.json()
self.assertEqual(status,200)
self.assertEqual(reslut['code'],421)
那么我们看下第二个用例怎么设计。
其实这里是直接调用登陆,那么我们可以在用例中这么实现
代码语言:javascript复制 def test_user_not_exict(self)->None:
self.login_url = 'http://127.0.0.1:8000/user/login/'
self.parame = {
"username": "liwanle1i",
"password": "123456"
}
reponse = requests.post(self.login_url, json=self.parame)
reslut = reponse.json()
self.token = reslut['data']['token']
headers={
"token":self.token
}
reponse = requests.get(self.url,headers=headers)
reslut = reponse.json()
self.assertEqual(reponse.status_code,200)
self.assertEqual(reslut['message'],'成功')
self.assertEqual(reslut['data']['username'],self.parame['username'])
先调用登陆进行登陆,获取token,这样两个用例就实现完毕。
我们可以启动后台,然后进行接口测试。
其实这里的实现很简单,但是依赖登陆的,我们是否可以抽离出来。封装成对应的方法。
后续很多接口都会使用,我们直接抽离出来使用。
代码语言:javascript复制import requests
login_url = 'http://127.0.0.1:8000/user/login/'
student_parame={
"username": "liwanle1i",
"password": "123456"
}
teacher_parame= {
"username": "liwanlei",
"password": "123456"
}
def get_students_token() ->str:
reponse = requests.post(login_url, json=student_parame)
reslut = reponse.json()
token = reslut['data']['token']
return token
def get_teacher_tone()->str:
reponse = requests.post(login_url, json=teacher_parame)
reslut = reponse.json()
token = reslut['data']['token']
return token
那么我们看下如何使用
代码语言:javascript复制from test.userlogin import *
def test_user_not_exict(self)->None:
self.token = get_students_token()
headers={
"token":self.token
}
reponse = requests.get(self.url,headers=headers)
reslut = reponse.json()
self.assertEqual(reponse.status_code,200)
self.assertEqual(reslut['message'],'成功')
self.assertEqual(reslut['data']['username'],student_parame['username'])
我们的用例还可以在增加一个获取老师的个人信息的
代码语言:javascript复制 def test_get_teacher(self):
self.token = get_teacher_tone()
headers = {
"token": self.token
}
reponse = requests.get(self.url, headers=headers)
reslut = reponse.json()
self.assertEqual(reponse.status_code, 200)
self.assertEqual(reslut['message'], '成功')
self.assertEqual(reslut['data']['username'], teacher_parame['username'])
self.assertIn("jobnum",reslut['data'])
我们在判断老师登陆后的个人信息的时候,我们增加了一个jobnum的判断。
后记
发现问题,解决问题。遇到问题,慢慢解决问题即可。
欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识
如果你有问题可以留言或者加我微信:952943386。
2021,一起牛转钱坤,一起牛逼。
如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~