前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FastAPI(八十四)实战开发《在线课程学习系统》--个人信息接口测试

FastAPI(八十四)实战开发《在线课程学习系统》--个人信息接口测试

作者头像
雷子
发布2021-11-23 11:22:28
3040
发布2021-11-23 11:22:28
举报

前言

我们上一次分享了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,一起牛转钱坤,一起牛逼。

如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档