pytest 参数化和allure注解(持续更新)

前提条件:我的用例是写在xlsx里面的。(接口和测试读取方法一样)

首先,读取xlsx用例文件

import xlrd,json

def getCase(filepath,index):
    try:
        file = xlrd.open_workbook(filepath)
        me = file.sheets()[index]
        nrows = me.nrows
        listdata = []
        for i in range(1, nrows):
            dict_canshu = {}
            if me.cell(i, 1).value=='Y':
                dict_canshu['id'] = me.cell(i, 0).value
                dict_canshu.setdefault('active',me.cell(i, 1).value)
                dict_canshu.setdefault('apiname', me.cell(i, 2).value)
                dict_canshu.setdefault('apihost',me.cell(i,3).value)
                dict_canshu.setdefault('url',me.cell(i, 4).value)
                dict_canshu.setdefault('method', me.cell(i, 5).value)
                dict_canshu.setdefault('redata', me.cell(i, 6).value)
                dict_canshu.setdefault('assert', me.cell(i, 7).value)
                dict_canshu.setdefault('sql', me.cell(i, 8).value)
                dict_canshu.setdefault('desc', me.cell(i, 9).value)
                listdata.append(dict_canshu)
        return listdata
    except Exception as e:
        log.error('获取测试用例数据失败,原因:%s'%e)

进入正题

import pytest,allure,Path,json
from interface.data.readCase import getCase
from interface.case.BaseThread import BaseThread
from common.httpHandle import httpHandle

class Test_api_case(object):
    @classmethod
    def setup_class(cls):
        cls.http=httpHandle()
        cls.req=None
        cls.result = None
    @pytest.mark.parametrize(('casedata'),getCase(Path.apicasPath(),0))
    def test_case(self,casedata):
        allure.dynamic.title(casedata['apiname'])
        allure.dynamic.description(casedata['apiname'])
        self.req=casedata
        self.thread = BaseThread(casedata,self.http)
        self.thread.start()

    def teardown(cls):
        cls.result = cls.thread.join()
        print('请求参数:', cls.req)
        print('响应结果:', cls.result)
        cls.j=json.loads(cls.result)
        cls.code=cls.j['statusCode']
        assert  cls.code==200

有不明白的,加群QQ 833077481交流

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值