Selenium WebDriver + python 自動化測試框架

?目標

  組內任何人都可以進行自動化測試用例的編寫

  完全分離測試用例和自動化測試代碼,就像寫手工測試用例一下,編寫excel格式的測試用例,包括步驟、檢查點,然后執行自動化工程,即可執行功能自動化測試用例,包括測試結果、測試報告。

  任何一臺安裝了JDK環境的windows機器都可以直接運行,不必考慮運行環境的問題。

  整理了一下目前使用的自動化測試框架,基于Selenium WebDriver + python,關鍵字驅動,簡單總結一下。

?

自動化工程:

?

driver 目錄??? ??????? ----瀏覽器驅動(支持chrome、IE瀏覽器)

data目錄??????????? ???????? ----上傳場景使用的圖片(具體業務相關)

Picture目錄 ???? ???????? ----測試用例失敗截圖

TestCase_UI.exe??????? ???????? ----主程序(使用pyinstaller打包發布)

Test.xls?????? ???????? ???????? ----測試用例(重點關注)?

?

測試用例(***.xls文件)

包括4個sheet分頁,詳情如下:

1、PageElements 分頁

?

模塊:具體的測試業務模塊

頁面元素:頁面具體操作的元素

例如“我的工作臺-搜索輸入框”,“我的工作臺”就是模塊名稱,“搜索輸入框”就是需要操作的元素

關鍵字:指的是元素的操作方式

例如文本輸入框封裝的關鍵字是input,按鈕是click,斷言是assert,這個是封裝在自動化測試工程中的

頁面定位元素:元素定位方式,支持8種定位方式:id、class、name、link…xpath、css

頁面元素定位表達式:

???????? 例如//*[@id='tip_about_info']/div[2]/span,采用xpath定位

如下的元素(輸入框),關鍵字-input、頁面定位元素-id、頁面元素定位表達式- plantformSearchInput

二級定位:頁面包含多個iframe 時,采用二級定位的方式進行頁面元素定位

?

2、TestConfig 分頁

? ? ?配置信息

?

Driver:根據填寫的數據啟動不同的瀏覽器,支持chrome、IE

URL:測試網址

PageElements:根據填寫的數據,讀取數據源,支持excel、py

**Report:測試報告的標題,可以定制

?

3、TestSuite 分頁

每行數據表示一個測試用例

?

測試用例序號:唯一,不能重復

測試用例描述:說明該條測試用例的目的

前置條件:方便用戶維護用例,可以為空

操作步驟:同上

預期結果:同上

是否執行:執行標識,yes執行、no不執行

測試結果:測試用例執行結果

?

4、TestSteps 分頁

? ? ? 測試用例的執行步驟

  1、2、3行為登錄操作,填寫用戶名、密碼,不用修改

?

測試用例序號:對應TestSuite分頁的測試用例序號,一個測試用例多個步驟,測試用例序號相同

測試模塊:業務模塊

測試用例步驟描述:對應PageElements分頁的“頁面元素”列

操作值:主要是文本輸入框輸入的數據

檢查點:測試步驟的檢查點,一條用例可包含多個檢查點

測試結果:用例步驟執行成功、用例步驟執行失敗

???????? 一個用例存在多個測試步驟,任意步驟執行失敗,不在執行剩下的步驟,直接執行下個測試用例,失敗的步驟填寫“用例步驟執行失敗”

頁面截圖:用例步驟執行失敗的步驟截圖

?

Sheet頁面對應關系說明:

TestSuite 分頁的測試用例序號對應TestSteps 分頁的測試用例序號

?

PageElements 分頁的測試步驟描述對應TestSteps 分頁的測試步驟描述

?

?

自動化用例執行過程

???????? 命令行中直接輸入自動化測試工程文件的名稱,即可開始測試用例執行,打印具體測試過程。

?

?

用例報告

???????? 用例執行完成,在report目錄中生成html格式的報告,方便jenkins持續集成使用

?

報告內容如下(可定制)

?

查看執行結果

TestSuite 分頁

?

TestSteps 分頁

?

?

轉載于:https://www.cnblogs.com/titan5750/p/6776125.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372300.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372300.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372300.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql游戲減少積分活動圖_plantuml-繪制狀態圖和活動圖和部署圖?

背景狀態圖:對象的所有狀態,以及基于事件發生的狀態改變的過程;活動圖:用例的工作流程;部署圖:系統的軟硬件物理體系結構;狀態圖基本語法元素語法說明開始和結束狀態[*]標識開始和結束狀態箭頭-…

windows中當你的鍵盤無法使用時我們可以用另一種方法哦

1.使用WinR打開cmd窗口 2.輸入osk回車就出現了一個虛擬的小鍵盤啦,當你的鍵盤壞掉后非常實用哦 轉載于:https://www.cnblogs.com/qianzf/p/6780496.html

python web.py 404_找不到web.py開發服務器-favicon.ico-404

py API文檔引用了一個“web.SEE OTHER()”函數,該函數生成一個303 SEE OTHER響應,將瀏覽器重定向到另一個位置。(請參見http://webpy.org/docs/0.3/api#web.application)這是一個服務器端的解決方案,它不需要在html文件中更改頭;如…

NetBeans 7.2引入了TestNG

代碼生成的優點之一是能夠查看如何使用特定的語言功能或框架。 正如我在《 NetBeans 7.2 beta:更快,更有用》一文中所討論的那樣, NetBeans 7.2 beta提供了TestNG集成 。 除了對該功能的單一引用之外,我在該帖子中沒有進一步闡述&…

Javascript模塊化編程(三):require.js的用法

一、為什么要用require.js? 最早的時候,所有Javascript代碼都寫在一個文件里面,只要加載這一個文件就夠了。后來,代碼越來越多,一個文件不夠了,必須分成多個文件,依次加載。下面的網頁代碼&…

[KISSY5系列]淘寶全終端框架 KISSY 5--從零開始使用

KISSY 是淘寶一個開源的 JavaScript 庫,包含的組件有:日歷、圖片放大鏡、卡片切換、彈出窗口、輸入建議等 一、簡介 KISSY 是一款跨終端、模塊化、高性能、使用簡單的 JavaScript 框架。 除了完備的工具集合如 DOM、Event、Ajax、Anim 等它還提供了經典的…

幾萬條數據的excel導入到mysql_【記錄】2萬多條數據的Excel表格數據導入mysql數據庫...

主題剛開始的時候做了兩個小方案!第一個是直接Excel處理完導入,但是這個導入的話雖然簡單出錯率很大!第二個是想直接用php做個小程序直接導入數據,但是想了想2萬條數據處理,百分之百瀏覽器會一直轉,最后不知…

JDeveloper中的Java反編譯器

Java Decompiler是一個獨立的圖形實用程序,顯示“ .class”文件的Java源代碼。 下面是Java Decompiler程序的快照 您可以從這里下載該程序 我將說明如何將此程序用作Jdeveloper中的外部工具 Java Decompiler和Jdeveloper之間的集成 您可以將此程序添加到Jdevelo…

NGUI學習隨筆

一、NGUI的直接用法 1. Attach a Collider:表示為NGUI的某些物體添加碰撞器,如果界面是用NGUI做的,只能這樣添加。(注:用Component添加無效)。2. Attach an Anchor:表示為該物體添加了…

Git 修改源地址

git remote set-url origin http://git.xxx.com/xxx/repo.git 轉載于:https://www.cnblogs.com/savokiss/p/5892543.html

mysql主從進行擴展_MySQL 主從擴展

MySQL 主從擴展常見問題排查1. 數據不一致:SHOW SLAVE STATUS \G;Last_Errno:1062Last_Error:ErrorDuplicate entryxxxn-66-77for key1on query.Defaultdatabase:guild.Query:insert into pynpcrecord setMapCode xxxn, UpdateTime 2015-08-0700:00:32解決方法: 在從庫上將重復…

JRockit – JRCMD有用的命令

自2007年以來,我一直在使用JRockit。我發現它比Hotspot速度慢,但在診斷和分析問題上總是更好。 從去年夏天開始,我一直在為一家國際電信系統供應商工作。 我們在HP OpenCall Convergent Communication Platform之上為電信運營商設計和實施各種…

Spark Streaming整合logstash + Kafka wordCount

1、安裝logstash,直接解壓即可 測試logstash是否可以正常運行 bin/logstash -e input { stdin { } } output { stdout {codec > rubydebug } } 只獲取消息 bin/logstash -e input { stdin { } } output { stdout {codec > plain { format > "%{messag…

js 變量類型

變量類型分為:基礎類型和引用類型 基礎類型:boolean, string, number, null, undefined, symbol 引用類型: array, object typeof: 判斷變量的類型instanceof:判斷某個對象是否是另外一個對象的實例主要還是理解這兩個判斷的不同之處&#xf…

python 相對導入_python 相對導入與絕對導入

Python 相對導入與絕對導入Python | Jul 21, 2016 | pythonPython 相對導入與絕對導入,這兩個概念是相對于包內導入而言的。包內導入即是包內的模塊導入包內部的模塊。Python import 的搜索路徑1.在當前目錄下搜索該模塊2.在環境變量 sys.path 中指定的路徑列表中依…

具有Java Kickstart的MongoDB

NoSQL數據庫由于其可伸縮性而變得越來越流行。 適當使用時 NoSQL數據庫可以提供真正的好處。 MongoDB是使用C 編寫的高度可擴展的開源NoSQL數據庫。 1.安裝MongoDB 您可以根據所使用的操作系統,按照MongoDB官方網站上的說明安裝MongoDB,而不會遇到很多麻…

Linux Shell——函數的使用

文/一介書生&#xff0c;一枚碼農。 scripts are for lazy people. 函數是存在內存里的一組代碼的命名的元素。函數創建于腳本運行環境之中&#xff0c;并且可以執行。 函數的語法結構為&#xff1a; function <function-name> {<code to execute> } 創建函數不需要…

FFmpeg學習2:解碼數據結構及函數總結

在上一篇文章中&#xff0c;對FFmpeg的視頻解碼過程做了一個總結。由于才接觸FFmpeg&#xff0c;還是挺陌生的&#xff0c;這里就解碼過程再做一個總結。本文的總結分為以下兩個部分&#xff1a; 數據讀取&#xff0c;主要關注在解碼過程中所用到的FFmpeg中的結構體。解碼過程中…

python1~10階乘while_Python3基礎 while 階乘

?python : 3.7.0OS : Ubuntu 18.04.1 LTSIDE : PyCharm 2018.2.4conda : 4.5.11type setting : Markdown?code"""Author : 行初心Date : 18-9-24Blog : www.cnblogs.com/xingchuxinGitHub : github.com/GratefulHeartCoder"""def main():count…

JavaFX 2 GameTutorial第4部分

介紹 這是與JavaFX 2游戲教程相關的六個部分系列的第四部分。 如果您錯過了第1部分 &#xff0c; 第2部分或第3部分 &#xff0c;我建議您在開始本教程之前仔細閱讀它們。 回顧一下&#xff0c;在第3部分中&#xff0c;我為您提供了許多經典街機風格游戲和所使用的不同輸入設備…