• pytest + requests 搭建接口自动化框架及流程


    接口自动化脚本

    接口自动化是是可以完全贴合 整个自动化测试框架的

    可以结合 pytest 以及 unittest 进行接口框架的编写

    接口自动化测试体现流程

    项目页面 - 接口文档 - 接口用例 - python脚本 - pytest框架 - 用例执行 - 测试报告 - 结果分析 - jenkins集成

    搭建测试框架的思路

      核心技术:request发起请求,yaml作为配置,Excel写入用例,数据驱动结合pytest对用例管理,

           git管理代码,jenkins持续集成,或者是docker容器

    先对代码封装

    import requests
    import json
    import pytest


    class Test_Case:

    def test_home_page(self):

    # 确定url
    url = 'http://mp-meiduo-python.itheima.net/'
    # 发起请求
    res = requests.get(url=url)
    assert res.status_code == 200



    def test_login(self):
    # 登录url
    url = 'http://mp-meiduo-python.itheima.net/login/'

    # 传入请求头
    data = {
    'username': 'admin',
    'pwd': 'admin'
    }
    # 如果请求类型 为json 就需要转码
    # data = json.dumps(data)

    res = requests.post(url=url, data=data)
    assert res.status_code == 200

    if __name__ == '__main__':

    # 执行指定接口测试用例文件 或生产测试报告
    pytest.main(['-s','test.py','--html=my_case.html'])

    结合数据驱动

    class Test_Case:

    @pytest.mark.parametrize('url',[
    ('http://mp-meiduo-python.itheima.net/')
    ])
    def test_home_page(self,url):

    res = requests.get(url=url)
    assert res.status_code == 200


    @pytest.mark.parametrize('url,data',[
    ('http://mp-meiduo-python.itheima.net/login/',{'username': 'admin',
    'pwd': 'admin'})
    ])
    def test_login(self,url,data):

    url = url

    data =data

    # data = json.dumps(data)

    res = requests.post(url=url, data=data)
    assert res.status_code == 200

    if __name__ == '__main__':

    pytest.main(['-sv','test.py','--html=my_case.html'])

    后期可以把get 与 post请求的参数都存入到数据驱动 对get类或post类进行写入

     



  • 相关阅读:
    【python cookbook】替换字符串中的子串(使用Template)
    python 学习sys
    【python cookbook】 替换字符串中的子串
    Python文件读写
    【python cookbook】python过滤字符串中不属于指定集合的字符
    【python cookbook】改变多行文本字符串的缩进
    python字符编码
    【python cookbook】python访问子字符串
    【python cookbook】python 控制大小写
    过关了
  • 原文地址:https://www.cnblogs.com/sunzzc/p/13389954.html
Copyright © 2020-2023  润新知