輕量級自動化測試框架WebZ

一、什么是WebZ

  WebZ是我用Python寫的“關鍵字驅動”的自動化測試框架,基于WebDriver。

  設計該框架的初衷是:用自動化測試讓測試人員從一些簡單卻重復的測試中解放出來。之所以用“關鍵字驅動”模式是因為我覺得這樣能讓測試人員(測試執行人員)快速上手,無需編寫代碼也能執行自動化測試。

二、為啥開源

  WebZ的開發用到了一些現有的開源項目,我很感謝這些開源項目的作者,希望自己也能成為一名開源者,和大家分享自己的成果,一起交流技術、一起成長。

  該項目的GitHub地址:https://github.com/noahzn/WebZ


三、開源說明


# Portions copyright (c) 2014 ZMAN(ZhangNing)
# 
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# Name: WebZ
# Description: keyword-driven automated testing framework
# Author: ZMAN(ZhangNing)
#
# This project also uses some third-party modules:
#
# selenium: Licensed under the Apache License, Version 2.0 (the "License");
# Copyright 2008-2013 Software Freedom Conservancy.
#
# splinter: Licensed under the BSD License;
# Copyright 2012 splinter authors. All rights reserved.
#
# reportlab: Licensed under the BSD License;
# Copyright ReportLab Europe Ltd. 2000-2014.
#
# xlrd: Licensed under the BSD License;
# Portions copyright 2005-2009, Stephen John Machin, Lingfo Pty Ltd. All rights reserved.
#

四、使用方法

  1.將 chromedriver.exe 放置在任意位置,添加到系統環境變量中。

  2.將編寫完成的自動化測試用例文件“case.xlsx”放在 D 盤根目錄下。

  3.運行WebZ.exe。若用例被正確執行,會在 D:\WebZ 目錄下找到測試報告。

  注:該程序在Win7 x64環境下打包而成。

示例:

測試用例(case.xlsx):

QQ截圖20141203212752

  如上圖所示,這個文件包含兩條測試用例,向大家展示了一些WebZ中基礎的關鍵字。關于關鍵字的詳細定義,請參見附錄。

  編寫測試用例的人員如果懂得一些前端知識,那就很贊了,不了解也沒關系,現在很多瀏覽器都有“元素審查”功能。以Chrome為例,按F12進入審查元素模式,點擊“放大鏡”圖標。

image

  然后點擊你想要操作的元素,如“百度一下”按鈕,此時瀏覽器就會高亮元素信息,直接右鍵復制CSS或XPATH即可,然后和WebZ提供的關鍵字相結合就可以對元素進行操作啦。

image

  我們來跑一下這兩條用例,自動生成測試報告(如果有未通過的用例,會列出失敗步驟):

  (好吧,本來報告內容是中文的,因為我發到GitHub了,所以我把這些中文都改成了英文,國際化嘛……)

image

五、實現解析

  如果你想要在Python開發環境中運行WebZ,請使用Python3,你還需要安裝以下幾個開源庫:reportlab、xlrd、selenium、splinter。

  WebZ結構大致是這樣的:

image

  讀取excel中的用例進行格式預處理、分段,讀取定義的關鍵字,通過WebDriver進行分類處理,同時捕捉失敗信息(如果用例執行失敗,會再次嘗試,共嘗試三遍),最后生成報告。

  當時設計WebZ時,構思就是這是一個輕量級的WEB自動化測試框架,但是要保留可擴充性的特點,主要可以對關鍵字進行自行擴充和封裝。

  “自動化測試是將一些重復性高卻又簡單的手動測試自動化,而不是要取代自動化。實行自動化測試前要考慮實現成本和收益情況”——好吧,這句話是我說的,我目前的個人觀點~歡迎探討 :)

  

  如果大家對WebZ有任何疑問或建議,可以聯系我哦,謝謝!

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

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

相關文章

【Sklearn】基于線性判別法的數據分類預測(Excel可直接替換數據)

【Sklearn】基于線性判別法的數據分類預測(Excel可直接替換數據) 1.模型原理2.模型參數3.文件結構4.Excel數據5.下載地址6.完整代碼7.運行結果1.模型原理 線性判別分析(Linear Discriminant Analysis,簡稱LDA)是一種經典的模式識別和分類方法,它的目標是找到一個投影,將…

Linux系列講解 —— FTP協議的應用

簡單介紹一下FTP文件傳輸協議在linux系統中的應用。 目錄 0. 基本概念1. FTP Server1.1 安裝FTP Server1.2 FTP Server開啟和關閉1.3 查看FTP Server是否開啟1.4 FTP服務器配置 2. FTP Client2.1 lftp2.2 ftp2.3 sftp2.4 文件資源管理器集成的ftp和sftp 3. ftp常用命令 0. 基本…

IDE的下載和使用

IDE 文章目錄 IDEJETBRAIN JETBRAIN 官網下載對應的ide 激活方式 dxm的電腦已經把這個腳本下載下來了,腳本是macjihuo 以后就不用買了

Neo4j之SET基礎

在 Neo4j 中,SET 語句用于更新節點或關系的屬性。它允許你修改節點或關系的屬性值,可以單獨使用,也可以與其他查詢語句(如 MATCH、CREATE、MERGE 等)一起使用。以下是一些使用 SET 語句的常見例子,以及它們…

深入源碼分析kubernetes informer機制(四)DeltaFIFO

[閱讀指南] 這是該系列第四篇 基于kubernetes 1.27 stage版本 為了方便閱讀,后續所有代碼均省略了錯誤處理及與關注邏輯無關的部分。 文章目錄 client-go中的存儲結構DeltaFIFOdelta索引 keyqueue push操作delta push 去重 queue pop操作 總結 client-go中的存儲結構…

設計模式

本文主要介紹設計模式的主要設計原則和常用設計模式。 一、UML畫圖 1.類圖 2.時序圖 二、設計模式原則 1.單一職責原則 就是一個方法、一個類只做一件事; 2.開閉原則 就是軟件的設計應該對拓展開放,對修改關閉,這在java中體現最明顯的就…

什么是A股交易接口_(股票交易c接口)開發原理

A股交易接口是指用于與國內的證券交易所(上海證券交易所和深圳證券交易所)進行股票買賣交易的電子接口或軟件系統。A股交易接口是金融機構、券商以及個人投資者的必備掌握操作技能之一,它提供了實時的股票行情、交易下單、撤單、查詢賬戶信息…

基于Hadoop的表級監管

現狀 大數據平臺中,采用hadoop的方式存儲數據,hdfs本質上是文件系統,而文件系統對數據的監管能力有限,但是數據安全領域問題日漸凸顯,現目前,大數據平臺一般以分層結構進行授權,但是對于一線開發人員而言,是能夠接觸到整個大數據平臺中的所有表的,那么如何實現這樣一…

yum install/update排除特定/某些包方式

1 什么是 yum? yum 代表 “Yellowdog Updater, Modified”。Yum 是用于 rpm 系統的自動更新程序和包安裝/卸載器。 它在安裝包時自動解決依賴關系。 2 什么是 rpm? rpm 代表 “Red Hat Package Manager”,它是一款用于 Red Hat 系統的功能…

PB:庫管理函數

庫管理函數 1、LibraryCreate() 功 能:創建一個空的PowerBuilder應用庫,并可根據需要在創建應用庫的同時添加庫注解。 語 法:LibraryCreate ( libraryname{, comments } ) 參 數:libraryname:string類型,指定要創建應用庫的名稱,可以帶上路徑,不帶路徑時在當前目…

Docker本地鏡像發布到阿里云

1. 本地鏡像發布到阿里云 2. 鏡像的生成方法 OPTIONS說明: -a :提交的鏡像作者; -m :提交時的說明文字; 本次案例centosubuntu兩個,當堂講解一個,家庭作業一個,請大家務必動手,親自實操。 docke…

Gradio部署應用到服務器不能正常訪問

用Gradio部署一個基于ChatGLM-6B的應用,發布到團隊的服務器上(局域網,公網不能訪問),我將gradio應用發布到服務器的9001端口 import gradio as gr with gr.Blocks() as demo:......demo.queue().launch(server_port90…

ad+硬件每日學習十個知識點(34)23.8.14 (DCDC詳細設計,續流二極管的選擇,COMP引腳的環路設計)

文章目錄 1.二極管的rrm電壓和rms電壓有什么不同2.DCDC續流二極管的選擇3.充電電容4.COMP引腳的環路設計5.DCDC設計總結6.多路并聯7.相位匹配8.工作模式9.低溫輸出偏離10.電源負載與效率11.降壓升壓模塊 1.二極管的rrm電壓和rms電壓有什么不同 答: 二極管的 RRM &a…

redis主從復制、哨兵服務、持久化、數據類型

Top NSD DBA DAY10 案例1:配置主從復制案例2:配置帶驗證的主從復制案例3:哨兵服務案例4:使用RDB文件恢復數據案例5:AOF案例6:字符類型案例7:列表類型案例8:散列類型案例9&#xff…

Linux交叉編譯opencv并移植ARM端

Linux交叉編譯opencv并移植ARM端 - 知乎 一、安裝交叉編譯器 目標平臺為arm7l,此為32位ARM架構,要安裝合適的編譯器 sudo apt install arm-linux-gnueabihf-gcc sudo apt install arm-linux-gnueabihf-g注意:64位ARM架構的編譯器與32位ARM架…

【MyBatis】查詢數據庫

目錄 一、什么是MyBatis 二、MyBatis框架的搭建 1、搭建MyBatis框架 2、設置MyBaits項目的配置 三、使用MyBatis完成數據庫的操作 1、MyBatis程序中sql語句的即時執行和預編譯 1.1、即時執行(${}) 1.2、預編譯(#{}) 1.3、即…

tomcat設置PermSize

最近tomcat老是報錯,查看了日志出現PermGen 內存不夠用,重啟tomcat后查詢使用情況 通過啟動參數發現沒有設置 PermGen,繼續通過jmap查看 jmap -heap 21179 發現99%已使用,而且默認是30.5M,太小了,這里設置成256M 1. 創建setenv.sh文件 在/usr/local/tomcat/bin目錄下創建一個…

解鎖編程的新契機:深入探討Kotlin Symbol Processor (KSP)的編寫

解鎖編程的新契機:深入探討Kotlin Symbol Processor (KSP)的編寫 1. 引言 隨著軟件開發領域的不斷發展,新的工具和技術不斷涌現,以滿足開發者在構建高效、可維護和創新性的代碼方面的需求。Kotlin Symbol Processor(KSP&#xf…

從零開始,快速打造租車服務小程序的分享

隨著移動互聯網的發展,小程序成為了企業推廣和服務的重要手段之一。租車服務行業也不例外,通過打造一款租車服務小程序,企業可以更好地與用戶進行互動和交流,提供更方便快捷的租車服務。本文將介紹如何利用第三方制作平臺/工具快速…

PHP實現在線年齡計算器

1. 輸入日期查詢年齡 2. php laravel框架實現 代碼 /*** 在線年齡計算器*/public function ageDateCal(){// 輸入的生日時間$birthday $this->request(birthday);// 當前時間$currentDate date(Y-m-d);// 計算周歲$age date_diff(date_create($birthday), date_create($…