Python接口自动化实战—7.测试用例转化(方式自选)

一、1个方法执行1条用例:仅仅提供思路
优化方式:
1. 传参可以进行参数化处理处理
2. 对方法进行封装减少重复代码

caselist

import unittest

# 导入自己写的类
from excel.operetion_data import OpererionData   # 获取Excel数据
from base.request import Request
from base.errorCode import ErrorCode


class Login(unittest.TestCase):

    def setUp(self):
    # 根据case_id执行
        self.caseid = 'login-001'
        self.header = Request().request_header(self.caseid)
        self.request_data = Request().request_data(self.caseid)

    # 输入正确的用户名和密码进行登录
    def test_01(self):
        data = Request().request(self.caseid, self.header, self.request_data)
        # Login().check_data(self.caseid, data, 0)
        ErrorCode().check_data(self.caseid, data, 0)

    # 输入用户名:null
    def test_02(self):
        self.request_data['phone'] = ''
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 101)

    # 输入用户名格式不正确:123 or 22222222222
    def test_03(self):
        self.request_data['phone'] = '123'
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 407)

    def test_04(self):
        self.request_data['phone'] = '22222222222'
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 407)

    # 输入用户名:空格
    def test_05(self):
        self.request_data['phone'] = '           '
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 407)

    # 输入验证码:null
    def test_06(self):
        self.request_data['smsCode'] = ''
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 101)

    # 输入验证码格式不正确:111
    def test_07(self):
        self.request_data['smsCode'] = '123'
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 401)

    # 输入验证码错误:123456
    def test_08(self):
        self.request_data['smsCode'] = '123456'
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 401)

    # 渠道为空
    def test_09(self):
        self.request_data['channel'] = ''
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 101)

    # 渠道不存在
    def test_10(self):
        self.request_data['channel'] = 'XDSAGF'
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, -1)

    """
    # 渠道:PC  渠道号:android 1000
    def test_12(self):
        self.request_data['channel'] = 'PC'
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 0)

    # 渠道id:为空
    def test_13(self):
        self.request_data['channelId'] = ''
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 0)

    # 渠道id:不存在
    def test_14(self):
        self.request_data['channelId'] = 8000
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 0)

    # 渠道id:类型不正确
    def test_15(self):
        self.request_data['channelId'] = str('1000')
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 0)
    """

    # 渠道key不存在
    def test_16(self):
        del self.request_data['channel']
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 101)

    """
    # 渠道id:为空
    def test_17(self):
        del self.request_data['channelId']
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 0)
    """

    # 非必填字段校验
    def test_18(self):
        del self.request_data['debug']
        del self.request_data['device']
        del self.request_data['osVersion']
        del self.request_data['appVersion']
        del self.request_data['privacyPolicy']
        data = Request().request(self.caseid, self.header, self.request_data)
        print(data)
        ErrorCode().check_data(self.caseid, data, 0)

    """
    # debug模式校验 + 正式账号
    def test_19(self):
        self.request_data['debug'] = 0
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 0)
    """

    # 非debug模式 + 测试账号
    def test_20(self):
        self.request_data['phone'] = '00109876543'
        self.request_data['debug'] = 0
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 407)

    # debug模式 + 测试账号
    def test_21(self):
        self.request_data['phone'] = '00109876543'
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 0)

    # 渠道id:没有确认隐私协议
    # def test_22(self):
    #     self.request_data['privacyPolicy'] = 0
    #     data = Request().request(self.caseid, self.header, self.request_data)
    #     print(data)
    #     ErrorCode().check_data(self.caseid, data, 0)

    # 输入验证码格式过期:
    @unittest.skipIf(OpererionData().get_is_run('login-001') is True, 'skip')  # 判断是否跳过执行
    def test_0100(self):
        data = Request().request(self.caseid, self.header, self.request_data)
        ErrorCode().check_data(self.caseid, data, 401)

二、使用DDT进行处理,代码如下
说明:
大致意思就是把所有的数据取出来,然后参数化之后循环执行用例

import unittest
import json

from ddt import ddt, data, unpack
from tools import do_excel
from tools import read_config
from basic import request, log_info

# 调用需要使用到的参数信息方法
config = read_config.ReadConfig()
sheets_name = config.get_data(read_config.ReadConfig().get_data("Env", "env"), "sheets_name")
do_excel = do_excel.DoExcel()
my_log = log_info.MyLog()


@ddt
class TestCase(unittest.TestCase):
	# 传入表单的数据 
    @data(*(do_excel.excel_data()["Account"]))
    def test_account(self, account_data):
        try:
            self.response_data = request.Request().run_main(account_data)
            my_log.info(self.response_data)
            self.assertEqual(json.loads(self.response_data)["resultCode"],
                             str(account_data["ExpectCode"]),
                             "Request Fail")
            if account_data["ExpectData"] is not None:
                expect_data = eval(account_data["ExpectData"])
                for item in expect_data:
                    self.assertEqual(self.response_data["data"][item],
                                     expect_data[item],
                                     "{} is not expect".format(item))
            self.result = "Pass"
        except Exception as e:
            my_log.error(e)
            print("ERROR:{}".format(e))
            self.result = "Fail"
        finally:
            do_excel.write_excel(case_id=account_data["Case_ID"], response_data=self.response_data, result=self.result)
            my_log.info("Result has write in excel")


if __name__ == '__main__':
    unittest.main()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值