1.安装python3
brew update
brew install pyenv
然后在 .bash_profile 文件中添加 eval “$(pyenv init -)”
pyenv install 3.5.3 -v
pyenv rehash 安装完成后,更新数据库
pyenv versions  查看目前系统已安装的 Python 版本
pyenv global 3.5.3  切换 Python 版本
python -V,查看 Python 版本
2.安装pytest及其他所需安装包:

pip install -U pytest
pip install -U requests
pip install -U pytest-pythonpath
pip install -U pytest-capturelog
pip install PyYAML
pip install configparser
pip install pyopenssl
二、pytest框架
setup_module(module):  #开始测试前执行一次,目前无实际使用
setup_function(function):  #每个测试用开始前执行一次,用于检查、准备测试环境
teardown_function(function):  #每个测试用例执行完执行一次,用于清除生成的测试数据
teardown_module(module):  #每次测试完成执行一次,用于还原测试环境
@pytest.mark.parametrize(‘mycase’, case.list,ids=case.name)  #装饰器,用来将list格式的测试用例分开执行

pytest.skip("skip testcase: (%s)" % mycase['Name']) #跳过测试用例
pytest.xfail("previous test failed (%s)" % mycase['Name']) #跳过会失败的测试用例
三、测试报告
python -m pytest -s -q  控制台输出每一步结果
1.allure

安装:

sudo pip install pytest-allure-adaptor
brew tap qatools/formulas
brew install allure-commandline

执行:

python -m pytest -s -q --alluredir ./report  #控制台也输出每一步结果
python -m pytest --alluredir ./report  #控制台只输出成功/失败和失败报的错误
allure generate report/ -o report/html  #生成报告,可直接打卡看
2.pytest-html

安装:

sudo pip install pytest-html

执行:

python -m pytest -s -q --html=./report.html  #控制台也输出每一步结果

python -m pytest --html=./report.html #控制台只输出成功/失败和失败报的错误
四、Demo

# coding: utf-8
    import pytest
    import public
    import read_testcase
    import record
     
    #获取一个账号token,全局变量
    public.getalltoken()
    #测试用例实例化
    testcase=read_testcase.case()
     
    #所有测试用例开始前执行的文件,只执行一次
    def setup_module(module):#每次开始测试执行一次
        print ("setup_module")
    #所有测试用例结束后执行的文件,只执行一次
    def teardown_module(module):#每次测试完成执行一次
        print ("teardown_module")
    #每个测试用开始执行一次
    def setup_function(function):
        print ("setup_function")
    #每个测试用例执行完执行一次
    def teardown_function(function):
        print ("teardown_function")
    #装饰器 pytest 整合的测试用例生成多个结果
    @pytest.mark.parametrize('mycase', testcase.testcase_list,ids=testcase.testcasename)
    def test_all(mycase):
        testcase=mycase['Testcase_name']+str(mycase['Testcase_ID'])+'.'+str(mycase['ID'])+":"+mycase['Name']
        #print(mycase['Name'])
        #pytest.skip("skip testcase: (%s)" % mycase['Name'])
        #pytest.xfail("previous test skip (%s)" % mycase['Name'])
        mycase = public.get_Precondition(mycase)
     
        #执行接口的测试
        r=public.request_method(mycase)
        try:
            print(r.status_code)
            print(r.json())
        except Exception as e:
            print(r.content)
            print(e)
        #对返回数据进行断言
        public.assert_method(r, mycase)
        #记录测试用例名称存储log
        record.record_testcase_name(testcase)
        #记录测试时使用的数据
        record.record_testcase_msg(mycase)
---------------------

pytest+request 接口自动化测试的更多相关文章

  1. 接口自动化测试框架【windows版】:jmeter + ant + jenkins

    为了提高回归效率及保证版本质量,很多公司都在做自动化测试,特别是接口自动化.接口自动化测试框架很多,有写代码的,也有不写代码的,我觉得没有谁比谁好,谁比谁高级之说,只要适用就好. 今天给大家分享一个不 ...

  2. 接口自动化框架(Pytest+request+Allure)

    前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱. 接口自动化包含2个部分,功能性的接口自动化测试和并发接口自动化测试. 本次文章着重介绍第一种, ...

  3. pytest+requests+Python3.7+yaml+Allure+Jenkins+docker实现接口自动化测试

    接口自动化测试框架(用例自动生成) 项目说明 本框架是一套基于pytest+requests+Python3.7+yaml+Allure+Jenkins+docker而设计的数据驱动接口自动化测试框架 ...

  4. Python接口自动化测试框架: pytest+allure+jsonpath+requests+excel实现的接口自动化测试框架(学习成果)

    废话 最近在自己学习接口自动化测试,这里也算是完成一个小的成果,欢迎大家交流指出不合适的地方,源码在文末 问题 整体代码结构优化未实现,导致最终测试时间变长,其他工具单接口测试只需要39ms,该框架中 ...

  5. 【python3+request】python3+requests接口自动化测试框架实例详解教程

    转自:https://my.oschina.net/u/3041656/blog/820023 [python3+request]python3+requests接口自动化测试框架实例详解教程 前段时 ...

  6. 接口自动化框架2-升级版(Pytest+request+Allure)

    前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱. 第一版入口:接口自动化框架(Pytest+request+Allure) 本次版本做了一些升级 ...

  7. python+request+robot framework接口自动化测试

    python+requests实现接口的请求前篇已经介绍,还有不懂或者疑问的可以访问 python+request接口自动化框架 目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的 ...

  8. 接口自动化测试unittest+request+excel(一)

    注: 学习python自动化测试,需要先学习python基础,主要还是多敲代码,多联系,孰能生巧,你也会是一名合格的程序员 python基础学习: http://c.biancheng.net/pyt ...

  9. python+request+HTMLTestRunner+unittest接口自动化测试框架

    转自https://my.oschina.net/u/3041656/blog/820023 正在调研使用python进行自动化测试,在网上发现一篇比较好的博文,作者使用的是python3,但目前自己 ...

随机推荐

  1. Java基础知识(JAVA之IO流)

    学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各 ...

  2. PHP自动加载SPL的四种处理方式

    libs目录下有3个类文件: Test.class.php <?php class Test { public function __construct() { echo "Loadi ...

  3. iot-dm异常日志

    iot-dm 本机断网日志 2018-03-15 08:55:41,345 INFO com.inspur.iot.client.core.IotConnection Connection is be ...

  4. iot-hub运行在虚拟上

    ng  build gradlew build java -jar iot-hub-0.0.1-SNAPSHOT.jar 后台运行  nohup java -jar iot-dm-0.0.1-SNAP ...

  5. nginx的访问控制

    一.基于Basic Auth认证与基于IP的访问控制 一.基于Basic Auth认证 Nginx提供HTTP的Basic Auth功能,配置了Basic Auth之后,需要输入正确的用户名和密码之后 ...

  6. 【Python】-NO.99.Note.4.Python -【Python3 条件语句 循环语句】

    1.0.0 Summary Tittle:[Python]-NO.99.Note.4.Python -[Python3 条件语句 循环语句] Style:Python Series:Python Si ...

  7. [LeetCode] 35. Search Insert Position_Easy tag: Binary Search

    Given a sorted array and a target value, return the index if the target is found. If not, return the ...

  8. [LeetCode] 240. Search a 2D Matrix II_Medium tag: Binary Search

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...

  9. Please add or free up more resources then turn off safe mode manually.

    解决方案:硬盘满了,释放硬盘空间.

  10. MVC4 原版样式