当前位置 : 主页 > 网络安全 > 测试自动化 >

pytest+request 接口自动化测试

来源:互联网 收集:自由互联 发布时间:2021-06-19
1.安装python3brew update brew install pyenv 然后在 .bash_profile 文件中添加 eval “$(pyenv init -)” pyenv install 3.5.3 -vpyenv rehash 安装完成后,更新数据库pyenv versions 查看目前系统已安装的 Python 版本

1.安装python3brew update brew install pyenv 然后在 .bash_profile 文件中添加 eval “$(pyenv init -)” pyenv install 3.5.3 -vpyenv rehash 安装完成后,更新数据库pyenv versions  查看目前系统已安装的 Python 版本pyenv global 3.5.3  切换 Python 版本python -V,查看 Python 版本2.安装pytest及其他所需安装包:pip install -U pytestpip install -U requestspip install -U pytest-pythonpathpip install -U pytest-capturelogpip install PyYAMLpip install configparserpip 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-adaptorbrew tap qatools/formulasbrew 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)---------------------

网友评论