接口测试:身份认证(Auth认证的接口)+查询发布会

上一篇:接口测试case:查询发布会-CSDN博客(无身份认证版)

1、前置基础

一般测试工具都会提供一个User Auth/Authorization的选项,要求输入username/password字段。

  • 系统登录功能时的username/password,是作为接口的一般参数来传输;
  • User Auth,包含在request请求中。

2、接口

名称 查询发布会
描述 查询发布会
URL
http://127.0.0.1:8000/api/sec_get_event_list/
调用方法

GET

传入参数

eid         # 发布会id

name     # 发布会名称

返回值 {
    'status': 200,
    'message': 'success',
    'data': {
        'eid': 3,
        'name': '小米3',
        'limit': 1002,
        'status': True,
        'address': '某某会展中心103',
        'start_time': '2023-08-22T14:20:00'
    }
}
状态码

10011:auth user null

10012:auth user fail

10021:parameter error

10022:query result is empty

200:success

说明

接口需要认证auth=('username','password')

eid、name两个参数二选一

3、代码

import os.path
import sys
import unittest
import requests
parentDir = os.path.dirname(os.path.dirname(__file__))
sys.path.insert(0,parentDir)
from data.readCsv import Csv_oper

base_dir = str(parentDir)
base_dir = base_dir.replace('\\','/')
event_Path = base_dir + '/data/event_data.csv'
guest_Path = base_dir + '/data/guest_data.csv'

class GetEventList(unittest.TestCase):
    def setUp(self):
        self.base_url = "http://127.0.0.1:8000/api/sec_get_event_list/"

    def tearDown(self):
        print(self.result)

    def test_get_event_auth_null(self):
        ''' auth为空 '''
        r = requests.get(self.base_url, params={'eid': 3})
        self.result = r.json()
        self.assertEqual(self.result['status'], 10011)
        self.assertEqual(self.result['message'], 'user auth null')

    def test_get_event_auth_fail(self):
        ''' auth错误 '''
        auth_user = ('admin', 'admin123')
        r = requests.get(self.base_url, auth=auth_user, params={'eid': 3})
        self.result = r.json()
        self.assertEqual(self.result['status'], 10012)
        self.assertEqual(self.result['message'], 'user auth fail')

    def test_get_event_param_error(self):
        ''' 查询发布会,aurh正确,id错误 '''
        auth_user =('admin','rxe519772.')
        r = requests.get(self.base_url,auth=auth_user, params={'eid': 99})
        self.result = r.json()
        self.assertEqual(self.result['status'], 10022)
        self.assertEqual(self.result['message'], 'query result is empty')

    def test_get_event_auth_succes(self):
        ''' 查询发布会,aurh正确,id正确 '''
        auth_user =('admin','rxe519772.')
        r = requests.get(self.base_url,auth=auth_user, params={'eid': 3})
        self.result = r.json()
        self.assertEqual(self.result['status'], 200)
        self.assertEqual(self.result['message'], 'success')
        self.assertEqual(self.result['data']['name'], '小米3')
        self.assertEqual(self.result['data']['address'], '某某会展中心103')

if __name__ == '__main__':
    # 初始化数据
    table_name1 = 'sign_event'
    c = Csv_oper()
    c.init_data(table_name1, event_Path)
    # 执行测试
    unittest.main()

4、执行结果

你可能感兴趣的:(接口测试,python,数据库,前端)