python - 接口自動化測試 - TestLogin - 登錄接口測試用例


 

復制代碼
# -*- coding:utf-8 -*-

'''
@project: ApiAutoTest
@author: Jimmy
@file: test_login.py
@ide: PyCharm Community Edition
@time: 2018-12-22 09:33
@blog: https://www.cnblogs.com/gotesting/

'''

import unittest
import os
from ddt import ddt,data
from Common.http_request import HttpRequest
from Common.read_excel import ReadExcel
from Common.read_config import ReadConfig
from Common.basic_data import DoRegex,Context
from Common.contants import *
from Common.get_logger import GetLog
import json


# 讀取配置文件,獲取當前URL前綴,用於靈活更換測試服務器地址
read_config = ReadConfig()
url_pre = read_config.get_config_str('api','url_pre')

# 讀取excel,獲取login測試數據
data_dir = os.path.join(data_dir,'test_data.xlsx')
read_excel = ReadExcel(data_dir)
login_cases = read_excel.get_cases('login')

get_log = GetLog()

@ddt
class TestLogin(unittest.TestCase):

    def setUp(self):
        print('Test Start')

    def tearDown(self):
        print('Test End')

    @data(*login_cases)
    def test_login(self,case):
        url = url_pre + case.url
        # 通過正則表達式 查找/替換,將excel讀出來的${normal_user}及${normal_pwd}替換為配置文件中讀取出的normal_user及normal_pwd的值
        data = DoRegex.replace(case.data)
        # 將替換后的字符串轉換成字典
        data = json.loads(data)

        # 記錄當前測試case信息
        get_log.log_info('''Test Case Info:
        case_id : {0}
        title   : {1}
        method  : {2}
        url     : {3}
        data    : {4}
        expected: {5}
        '''.format(case.case_id,case.title,case.method,url,data,case.expected))

        response = HttpRequest(method=case.method,url=url,data=data)
        actual = response.get_json()['msg']

        # 記錄當前測試case接口響應信息
        get_log.log_info('''Test Case Request Response Result:
        response : {0}
        actual   : {1}
        '''.format(response.get_json(),actual))

        try:
            self.assertEquals(case.expected,actual)
            read_excel.write_result('login',case.case_id,actual,'Pass')
            get_log.log_info('Test Result is Passed ! case_id is {0},title is {1} '.format(case.case_id,case.title))
        except Exception as e:
            read_excel.write_result('login',case.case_id,actual,'Fail')
            get_log.log_info('Test Result is Failed ! case_id is {0},title is {1} '.format(case.case_id,case.title))
            get_log.log_error('Error msg :{0}'.format(e))
            raise e


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM