<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
        博客園  :: 首頁  :: 新隨筆  :: 聯系 :: 訂閱 訂閱  :: 管理

      Pytest框架實現前后置(固件、夾具)處理

      Posted on 2024-07-11 10:15  砂鍋米粥  閱讀(101)  評論(0)    收藏  舉報

      一、setup/teardown,setup_class/teardown_class

      • 為什么需要這些功能?
        比如:web自動化執行用例之前,需要打開瀏覽器

      class Testshaguo:

      #這個在所有的用例之前只執行一次
      def setup_class(self):
          print('在每個類執行之前的初始化的工作:比如:創建日志對象,創建數據庫的連接,創建接口的請求對象')
      
      
      #在每個用例之前執行 一次
      def setup(self):
          print('在執行測試用例之前執行的代碼:打開瀏覽器,加載網頁\n')
      
      def test_100_baibai(self):
          print('測試白白\n')
      
      def test_101_baiai(self):
          print('測試白愛\n')
      
      def test_102_babai(self):
          print('測試八白\n')
      
      def teardown(self):
          print('在執行測試用例之后掃尾的代碼:關閉瀏覽器\n')
      
      
      def teardown_class(self):
          print('在每個類執行之后的掃尾的工作:比如:銷毀日志對象,銷毀數據庫的連接,銷毀接口的請求對象')
      

      注意:和unittest不同,全部小寫

      二、使用@pytest.fixture()裝飾器,實現部分用例的前后置

      裝飾器
      @pytest.fixture(scope="",params="",autouse="",ids="",name="")

      • scope表示的是被@pytest.fixture標記的方法的作用域。function(默認),class,module,package/session
      • params:參數化,
        • 支持:列表[],元祖(),字典列表{[],[]...},字典元祖{(),(),()...}
          @pytest.fixture(scope="function", params="['成龍','你','我']")
          def my_fixture(request):
          print('前置')
          yield request.param
          print('后置')

      class Testshaguo:

      def test_100_baibai(self):
          print('測試白白\n')
      
      def test_101_baiai(self,my_fixture):
          print('測試白愛\n')
          print('--------'+str(my_fixture))
      
      • params=['成龍','你','我'],這里params是參數名,有s

      • request.param這里是屬性名,沒有s

      • return和yield都表示返回的意思,但是return的后面不能有代碼,yield返回后面可以有代碼

      • autouse=True:自動執行,默認False

      • ids:當使用params參數化時,給每一個值設置一個變量名,意義不大

      • name:給表示的是被@pytest.fixture標記的方法取一個別名

        • 當取了別名之后,那么原來的名稱不能使用

      三、通過conftest.py和@pytest.fixture()結合使用實現全局的前置應用

      • 比如:項目的全局登錄,模塊的全局處理
      1. conftest.py文件是單獨存放的夾具配置文件,名稱是不能更改
      2. 用處可以在不同的py文件中使用同一個fixture函數
      3. 原則上conftest.py需要和運行的用例放到同一層,并且不需要

      總結:

      • setup/teardown,setup_class/teardown_class 是作用于所有用例或者所有的類
      • @pytest.fixture() 作用既可以部分,也可以全部前后置
      • conftest.py和@pytest.fixture()結合使用,作用于全局的前后置

      四、斷言
      Assert
      assert 1==2

      五、pytest結合allure-pytest插件生成allure測試報告

      • 插件:Allure-pytest
      1. 下載,解壓,配置path路徑
        https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline
      • path路徑配置
        • 驗證:allure --version(cmd、pycharm)
          • 問題:cmd可以驗證,pycharm驗證失敗?
          • 解決方法:重啟pycharm
      1. 加入命令,生成json格式的臨時報告
        [pytest]
        addopts = -vs --alluredir ./temp
      2. 生成allure報告
        os.system('allure generate ./temp -o ./report --clean')
      • Allure generate 命令,固定的
      • ./temp 臨時的json格式報告的路徑
      • -o 輸出output
      • ./report 生成的allure報告的路徑
      • --clean 清空./report路徑原來的報告
      主站蜘蛛池模板: 99久久无色码中文字幕| 亚洲精品无码人妻无码| 丁香花在线影院观看在线播放| 曰韩无码二三区中文字幕| 中年国产丰满熟女乱子正在播放 | 国产成人精品亚洲日本片| 国产熟睡乱子伦视频在线播放| 欧美怡春院一区二区三区| 美乳丰满人妻无码视频| 口爆少妇在线视频免费观看| 亚洲AV无码久久精品成人| 高清有码国产一区二区| 无码国内精品人妻少妇| 丁香婷婷在线视频| 国产精品无码无需播放器| 高潮迭起av乳颜射后入| 老熟妇乱子交视频一区| 极品尤物被啪到呻吟喷水| 国产亚洲精品日韩av在| 青草99在线免费观看| 中国少妇嫖妓BBWBBW| 日本免费一区二区三区| 无码天堂亚洲国产av麻豆| 亚洲国产精品国自拍av| 亚洲综合另类小说色区色噜噜 | 莒南县| 亚洲区一区二区三区视频| 日韩精品中文字幕人妻| 亚洲日韩国产精品第一页一区| 亚洲综合在线一区二区三区| 国产95在线 | 欧美| 亚洲色大成网站www在线| 新营市| 婷婷久久香蕉五月综合加勒比| 羞羞影院午夜男女爽爽免费视频| 色天天天综合网色天天| 午夜福利在线观看6080| 亚欧美闷骚院| 好深好湿好硬顶到了好爽| 精品亚洲香蕉久久综合网| 天天干天天色综合网|