FastAPI(八十四)实战开发《在线课程学习系统》--个人信息接口测试
2023-03-15 23:19:33 时间
前言
我们上一次分享了FastAPI(八十三)实战开发《在线课程学习系统》--登陆接口测试,这次我们看下登陆用户信息
正文
获取用户信息接口,那么我们看下FastAPI(六十七)实战开发《在线课程学习系统》接口开发--用户 个人信息接口开发接口的代码,那么我们根据设计测试用例。
1.首先未登陆,提示未登陆错误
2.登陆,获取用户信息
那么我们去写下对应的用例。
用例1很简单。
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)
那么我们看下第二个用例怎么设计。
其实这里是直接调用登陆,那么我们可以在用例中这么实现
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,这样两个用例就实现完毕。
我们可以启动后台,然后进行接口测试。
其实这里的实现很简单,但是依赖登陆的,我们是否可以抽离出来。封装成对应的方法。
后续很多接口都会使用,我们直接抽离出来使用。
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
那么我们看下如何使用
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'])
我们的用例还可以在增加一个获取老师的个人信息的
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,一起牛转钱坤,一起牛逼。
如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~
相关文章
- 金融服务领域的大数据:即时分析
- 影响大数据、机器学习和人工智能未来发展的8个因素
- 从0开始构建一个属于你自己的PHP框架
- 如何将Hadoop集成到工作流程中?这6个优秀实践必看
- SEO公司使用大数据优化其模型的5种方法
- 关于Web Workers你需要了解的七件事
- 深入理解HTTPS原理、过程与实践
- 增强分析:数据和分析的未来
- PHP协程实现过程详解
- AI专家:大数据知识图谱——实战经验总结
- 关于PHP的错误机制总结
- 利用数据分析量化协同过滤算法的两大常见难题
- 怎么做大数据工作流调度系统?大厂架构师一语点破!
- 2019大数据处理必备的十大工具,从Linux到架构师必修
- OpenCV中的KMeans算法介绍与应用
- 教大家如果搭建一套phpstorm+wamp+xdebug调试PHP的环境
- CentOS下三种PHP拓展安装方法
- Go语言HTTP Server源码分析
- Go语言HTTP Server源码分析
- 2017年4月编程语言排行榜:Hack首次进入前五十