美文网首页软件测试知识
1.Python+request+pytest框架

1.Python+request+pytest框架

作者: 小小一颗卤蛋 | 来源:发表于2022-10-29 16:59 被阅读0次

    接口类测试方案:

    1.工具类:postman,jmeter,soapUI
    2.代码类:
    unittest:解释器自带框架
    pytest:高效率,可定制化
    nose:
    RF:封装关键字
    3.测试平台
    前端
    后端
    执行机制--框架pytest

    pytest框架环境搭建

    1.使用pip安装pytest

    pip install pytest
    pip install pytest-html  原生态的报告模板
    

    2.查看安装是否成功

    pip show pytest
    

    3.pytest执行测试用例
    执行的规则:

    • .py测试文件必须以test开头(或以test结尾)
    • 测试类必须以Test开头,且无init方法
    • 测试方法必须以test开头,def test_001()
    • 断言必须使用assert

    4.新建工程(规范化编程:分包分模块,分层分级写)
    工程建立规范:lib(库),data(测试数据),testcase(测试用例),

    5.数据驱动(参数化)
    在方法前添加语法糖即可:

    # @pytest.mark.parameriza('变量名',[参数化数据]) ,一组参数
    @pytest.mark.parameriza('a',[1,2,3])
    def test_001(self,a):
      print('第一个测试用例')
      assert 1+1==a
    # 说明:用例会执行三次(三组数据),a分别为1,2,3
    
    # @pytest.mark.parameriza('变量名1,变量名2',[(value1.,value2),(value2,)]) ,多组组参数
    @pytest.mark.parameriza('a,b',[(1,2),(3,4),(5,6)])
    def test_001(self,a,b):
      print('第一个测试用例')
      assert a+1==b
    # 说明:用例会执行三次(三组数据),a分别为1,3,5,b分别为2,4,6
    

    6.pytest的setup与teardown

    import pytest
     @pytest.fixture(scope='session')  #装饰器,声明下面的函数是setup函数,缺省值为function级
     #scope可以加入参数scope='class',将级别改为class
     #scope可以加入参数scope='module',将级别改为module
     #scope='session'  使用这个级别时,将fixture的内容写到conftest.py文件中,目录下的所有文件都使用这个配置
     def fun1():
         print('开始')
         yield  #这个关键字之后的代码相当于teardown
         print('结束')
     def test_c01(fun1):
         assert 1==2
     if __name__ == '__main__':
         pytest.main(['conftest.py','-s'])
    

    总结一下
    运行文件:pytest 用例路径 --html=./report/result.html 注意:--html= 没有空格。

    还可以用main()方法来运行:pytest.main(['当前用例路径','--html=测试报告/XX.html '])

    在pytest中有四种setup和teardown
    1、setup_module和teardown_module在整个测试用例所在的文件中所有的方法运行前和运行后运行,只会运行一次;

    2、setup_class和teardown_class则在整个文件中的一个class中所有用例的前后运行,

    3、setup_method和teardown_method在class内的每个方法运行前后运行,

    4、setup_function、teardown_function则是在非class下属的每个测试方法的前后运行;
    执行:pytest test_login.py -s -s 输出print信息

    pytest 结合Allure操作

    • Allure 安装
      1、下载Allure.zip并解压到任意目录(C:\allure\allure-2.13.0\)
      2、添加该路径到环境变量的path中
      3、cmd 安装 pip install allure-pytest
      4、验证是否安装成功:cmd 中输入allure查看
      5、allure报告生成
    # 1、执行pytest单元测试,生成Allure报告, 数据存在/tmp目录
    pytest -s --alluredir=../report/tmp # -s 表示允许执行print语句
    # 2、执行命令,生成测试报告
    allure generate ../report/tmp -o ..report/report --clean
    
    • allure 报告可以展示多级
      @allure.epic('1')
      @allure.feature(‘2’)
      @allure .story('3')
      @allure.title(‘4’)
    import pytest 
    import allure 
    import os
    @allure.epic('项目名称') 
    @allure.feature('业务模块名称') 
    class Test100:     
      @allure.story('接口名称')    
      @allure.title('用例标题1')    
      def test_c100(self):         
        assert 1 == 2     
      @allure.story('接口名称2')     
      @allure.title('用例标题2')     
      def test_c101(self):         
        assert 1 == 1 
    
    if __name__ == '__main__':     
      pytest.main([__file__, '-sv','--alluredir','./report/report','--clean-alluredir'])     
      os.system('allure serve ./report/report')
    

    相关文章

      网友评论

        本文标题:1.Python+request+pytest框架

        本文链接:https://www.haomeiwen.com/subject/gmzazrtx.html