zoukankan      html  css  js  c++  java
  • 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类进行写入

     



  • 相关阅读:
    http协议(二、报文格式)
    http协议(一、基础部分)
    echarts双轴轴线不对齐的解决办法
    svn 强制解锁的解决办法
    分析器错误
    JQgrid for asp.net
    养生宝典,值得一读(健康养生)
    ORM框架是什么
    WebSite和WebApplication的区别
    MVC3和MVC4相关问题
  • 原文地址:https://www.cnblogs.com/sunzzc/p/13389954.html
Copyright © 2011-2022 走看看