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

简介: FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)

我们在之前讲了单元测试,这次我们分享下一部分接口的接口测试。

那么我们看来看下对应的接口怎么测试。


       那么我们去设计对应的登陆用例,由于接口我们之前开发过,我们参照之前的接口开发的代码进行用例设计。


       1.登陆用户不存在。


           输入参数:

self.parame = {
           "username": "liwanle1i33333",
           "password": "123456"
       }


期望:


message='用户不存在'
   code=100205


2.登陆成功


       参数:


self.parame = {
            "username": "liwanle1i",
            "password": "123456"
        }


预期:


message='成功'
code=200


    3.密码正确再次登陆直接返回之前的token,预期还是一样的。  


    4.输入密码错误


       参数:


self.parame = {
            "username": "liwanle1i",
            "password": "123452336"
        }


预期:


code=100206
message='密码错误'


我们设计了四条登陆相关的case,那么对应的完整的case

import unittest, requests
class UserLoginCase(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        cls.url = 'http://127.0.0.1:8000/user/login'
    @classmethod
    def tearDownClass(cls) -> None:
        '''
        还原测试环境,测试url
        :return:
        '''
        cls.client = None
        cls.url = ''
    def setUp(self) -> None:
        '''
        初始化参数
        :return:
        '''
        self.parame = {
            "username": "liwanle1i",
            "password": "123456"
        }
    def tearDown(self) -> None:
        '''最后清理参数'''
        self.parame.clear()
    def test_login_usernot_exict(self):
        parame = {
            "username": "liwanle1i33333",
            "password": "123456"
        }
        reponse = requests.post(self.url, json=parame)
        status = reponse.status_code
        reslut = reponse.json()
        self.assertEqual(status, 200)
        self.assertEqual(reslut['code'], 100205)
        self.assertEqual(reslut['message'], '用户不存在')
    def test_login_success(self):
        reponse = requests.post(self.url, json=self.parame)
        status = reponse.status_code
        reslut = reponse.json()
        self.assertEqual(status, 200)
        self.assertEqual(reslut['code'], 200)
        self.assertEqual(reslut['message'], '成功')
    def test_login_success_two(self):
        reponse = requests.post(self.url, json=self.parame)
        status = reponse.status_code
        reslut = reponse.json()
        self.assertEqual(status, 200)
        self.assertEqual(reslut['code'], 200)
        self.assertEqual(reslut['message'], '成功')
    def test_login_error(self):
        self.parame['password']='2222222222'
        reponse = requests.post(self.url, json=self.parame)
        status = reponse.status_code
        reslut = reponse.json()
        self.assertEqual(status, 200)
        self.assertEqual(reslut['message'], "密码错误")
if __name__ == "__main__":
    unittest.main()


相关文章
|
1天前
|
JSON JavaScript 测试技术
Postman接口测试工具详解
Postman接口测试工具详解
11 1
|
4天前
|
JSON 前端开发 测试技术
从零开始:学习使用 Postman 进行接口测试
在当前,API(应用程序接口)的使用变得越来越普遍。其中,HTTP/HTTPS API 是最常见的一种。无论是开发前端还是后端,测试 API 都是一个关键环节。Postman 是一种流行且强大的 API 测试工具,能够帮助开发人员轻松地进行接口测试和调试。
|
4天前
|
敏捷开发 测试技术 API
阿里云云效产品使用问题之API中包含有获取测试计划的接口吗
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5天前
|
安全 API 数据安全/隐私保护
​6个值得测试的发送邮件接口API
在数字营销和企业通信中,发送邮件接口API如SendGrid、Mailgun、Amazon SES、AOKSend、Postmark和Sendinblue是关键工具。这些API自动化邮件发送,提高效率,确保及时送达。各具特色,如SendGrid和Mailgun适合大规模发送,AOKSend易于集成,Postmark专于事务邮件,而Sendinblue提供综合营销解决方案。根据企业需求,如邮件量、成本、功能和集成简易度,可选择最适合的API服务。
|
6天前
|
存储 JSON 测试技术
软件测试之 接口测试 Postman使用(下)
软件测试之 接口测试 Postman使用(下)
17 2
|
6天前
|
测试技术 数据格式
软件测试之 接口测试 Postman使用(上)
软件测试之 接口测试 Postman使用(上)
14 1
|
8天前
|
监控 druid Java
Springboot用JUnit测试接口时报错Failed to determine a suitable driver class configure a DataSource: ‘url‘
Springboot用JUnit测试接口时报错Failed to determine a suitable driver class configure a DataSource: ‘url‘
16 0
|
13天前
|
JSON Java Maven
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
24 3
|
14天前
|
监控 前端开发 测试技术
postman接口测试工具详解
postman接口测试工具详解
43 7
|
14天前
|
前端开发 测试技术
接口测试:Mock 的价值与意义
Mock测试用于替代复杂或不可用的对象,常见于前后端交互、第三方系统及硬件解耦。它不依赖真实数据,节省工作量和联调时间。核心包括匹配规则(决定修改哪个接口)和模拟响应(设计篡改内容以符合测试用例)。
12 0