pytest 框架下的接口自动化

一,@pytest.mark.parametrize()基本用法

@pytest.mark.parametrize(args_name,args_value)
args_name:参数名
args_value:参数值,支持{},[],(),{}

  1. 第一种方式:
import pytest
class TestApi:
    @pytest.mark.parametrize('args',['变量1','变量2','变量3'])
    def test_01(self,args):
        print(args)
if __name__ == '__main__':
    pytest.main(['test_api.py','-s'])
		

预期结果:


  1. 第二种方式:跟unittest的ddt 里面的unpack 解包的一样
import pytest
class TestApi:
    @pytest.mark.parametrize('a1,a2',[['变量值1_1','变量值1_2'],['变量值2_1','变量值2_2'],['变量值3_1','变量值3_2']])
    def test_01(self,a1,a2):
        print(a1,a2)
if __name__ == '__main__':
    pytest.main(['test_api.py','-s'])

预期结果

test_api.py::TestApi::test_01[\u53d8\u91cf\u503c1_1-\u53d8\u91cf\u503c1_2] 变量值1_1 变量值1_2
PASSED
test_api.py::TestApi::test_01[\u53d8\u91cf\u503c2_1-\u53d8\u91cf\u503c2_2] 变量值2_1 变量值2_2
PASSED
test_api.py::TestApi::test_01[\u53d8\u91cf\u503c3_1-\u53d8\u91cf\u503c3_2] 变量值3_1 变量值3_2
PASSED

二,YAML文件详解–实现接口自动化

1,用于全局的配置文件:ini/yaml
2,用于写测试用例(接口测试用例)

Yaml 简介:
yaml 是一种数剧格式,支持注释,换行,多行字符串,裸字符串(整形,字符串)。
yaml 语法规则:
1,区分大小写
2,使用缩进表示层级,不能使用tab键缩进,只能用空格
3,缩进没有数量的,只要前面是对齐的就行
4,注释是#

数据组成
1,map对象,键值对,键:(空格)值

cxzx:
  name: sophia
  age: 18

2,数组(list),用一组横线开头,如:

-
cxzx:
  -name: sophia
  -age: 18

yaml_util.py: 读取yaml 中的数据

class YamlUtil:
    def __init__(self,yaml_file):
        '''
        通过init方法把yaml文件传入到这个类
        :param yaml_file:
        '''
        self.yaml_file = yaml_file
        #
    def raad_yaml(self):
        '''
        读取yaml,对yaml反序列化,就是把我们的yaml 格式转换成dict格式
        :return:
        '''
        with open(self.yaml_file,encoding='utf-8') as f:
            value = yaml.load(f, Loader=yaml.FullLoader)
            print(value)
if __name__ == '__main__':
    YamlUtil('test_api.yaml').raad_yaml()

结果:

{'cxzx': {'name': 'sophia', 'age': 18}}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
接口自动化测试是软件开发过程的重要环节,它可以验证接口功能是否正常、提高测试效率和准确性。pytest是一个功能强大的Python测试框架,它提供了简洁的语法和丰富的插件,非常适合用于接口自动化测试实战。 在进行pytest接口自动化测试实战时,我们可以按照以下步骤进行: 1. 环境准备:首先,我们需要安装pytest框架和相关依赖的库,例如requests库用于发送HTTP请求,pytest-html插件用于生成HTML测试报告。 2. 编写测试用例:接下来,我们需要编写测试用例。可以使用pytest提供的装饰器(如@pytest.mark.parametrize)来参数化测试用例,从而实现对不同输入和预期结果的验证。 3. 发送请求:在测试用例,我们可以使用requests库发送HTTP请求,根据接口的请求方法(如GET、POST、DELETE等)以及请求参数、请求头等来构建请求。 4. 断言结果:一旦接口请求完成,我们可以使用断言语句进行结果的判断和验证。断言语句可以使用pytest提供的断言函数(如assert response.status_code == 200)来实现。 5. 运行测试:编写完测试用例后,我们可以使用pytest命令来执行测试。pytest会自动搜索以"test_"开头的文件和以"test_"开头的函数,并执行这些函数的测试用例。 6. 生成测试报告:执行完测试后,pytest会生成测试结果的详细报告。我们可以使用pytest-html插件来生成HTML格式的测试报告,方便查看测试结果和统计。 通过以上步骤,我们可以使用pytest框架进行接口自动化测试实战。pytest提供了丰富的功能和灵活的语法,能够大大简化测试代码的编写和维护,并且测试报告清晰明了,方便查看和分析测试结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值