基於 UI 層的 pytest 使用
同事研究的基於UI層的pytest指令碼
環境配置
1、軟體包安裝
python3.7
pip install pytest-ordering
pip install pytest
pip install selenium (https://www.cnblogs.com/eastonliu/p/9088301.html[元素定位教程])
https://npm.taobao.org/mirrors/chromedriverpython環境目錄下)(谷歌瀏覽器驅動,解壓到到
pip install allure-pytest
pip install psycopg2
pip install pytest-assume
pip install pytest-rerunfailures
pip install Appium-Python-Client
安裝SDK和jdk
2、環境配置
allure 配置bath環境變數(https://www.cnblogs.com/haohuixiang/p/12627551.html)
3、命令
指令碼執行命令:pytest
報告生成命令:allure generate report/ -o report/html --clean
工程包結構
指令碼解析
1、從order=0的指令碼開始執行,將各頁面瀏覽器的關閉操作禁止,原因是指令碼中各頁面都有寫了個關閉瀏覽器的操作。(按住ctrl,再點選函式即可跳轉到相應的函式頁面)
2、其餘各頁面的指令碼邏輯基本是一致的
1)獲取瀏覽器驅動: DriverUtils.get_test_driver()
2)獲取當前頁面的類方法: LoginProxy()
3)引數定義,讀取json中的入參: @pytest.mark.parametrize
4)定義一個方法(傳參):def test_login()
(1)呼叫已定義好的類中的方法,比如登入(傳參)self.login_handle.input_id(id_1)
(2)呼叫輸入使用者id的方法:def input_id(self, id_1)
(3)定義查詢使用者id的方法:def find_id(self):
(4)元素定位方法:self.ID = (By.CSS_SELECTOR, "[placeholder = '賬號']")
5)文字斷言:assert is_not_element_by_text()
6)截圖操作:allure.attach(self.driver.get_screenshot_as_png(), "查詢", allure.attachment_type.PNG)
7)資料庫斷言:inquire_sql_cs("select device_status from am_iot_device where bind_code= '{}';".format(web_base_page.sold_number))
相關文章
- 使用 ATX+pytest+allure-pytest 進行 IOS 的 UI 自動化測試iOSUI
- 基於Pytest豆瓣自動化測試【1】
- 基於Vue+element-ui 的Table樹VueUI
- pytest fixture 使用
- 基於 vue-cli3 打造屬於自己的 UI 庫VueUI
- FastAPI(43)- 基於 pytest + requests 進行單元測試ASTAPI
- fish-ui 一套基於vue2的ui元件庫UIVue元件
- 基於「Chrome-應用層級原生事件」的 web-UI 自動化錄製是否可行?Chrome事件WebUI
- 基於Element-UI的Vue管理後臺搭建UIVue
- 基於vue(element ui) + ssm + shiro 的許可權VueUISSM
- 將CRUD分解為基於任務的UI -CodeOpinionUI
- 基於Svelte3.x桌面端UI元件庫Svelte UIUI元件
- 基於"堆"的底層實現和應用
- iOS基於中間層的路由跳轉方案iOS路由
- pytest-引數request的使用
- Pytest學習(四) - fixture的使用
- 【pytest系列】- assert斷言的使用
- pytest fixtures裝飾器的使用
- UI 層級問題UI
- 基於vue的Element-ui定義自己的select元件VueUI元件
- 基於VUE移動端UI好用框架VueUI框架
- Spark UI (基於Yarn) 分析與定製SparkUIYarn
- Pytest學習(十三)- 重複執行之pytest-repeat的使用
- 基於vue(element ui) + ssm + shiro 的許可權框架VueUISSM框架
- 關於 pytest 外掛 pytest-rerunfailures 和 fixture 的相容性問題AI
- 基於 Pytest+Requests+Allure 實現介面自動化測試
- 基於Python+Requests+Pytest+YAML+Allure實現介面自動化PythonYAML
- Pytest(1) - 執行引數的使用
- Pytest學習(七) - skip、skipif的使用
- Pytest學習(二) - 斷言的使用
- 如何開發一個基於 Vue 的 ui 元件庫(一)VueUI元件
- 如何開發一個基於 Vue 的 ui 元件庫(二)VueUI元件
- 基於 React 的 UI 元件庫 uiw v1.2.10 釋出ReactUI元件
- 基於Vue+element-ui 的Table二次封裝VueUI封裝
- 開發一個基於react & typescript 的npm ui元件包ReactTypeScriptNPMUI元件
- 一種基於 cypress 的 UI 自動化測試框架UI框架
- 基於TDesign風格的Blazor企業級UI元件庫BlazorUI元件
- 關於 pytest Case 遇到重試的問題