2023最全的Web自動化測試介紹

做測試的同學們都了解,做Web自動化,我們主要用Selenium或者是QTP。

有的人可能就會說,我沒這個Java基礎,沒有Selenium基礎,能行嗎?測試雖然屬于計算機行業,但其實并不需要太深入的編程知識!

01、行業現狀

我們先看看目前的行業現狀:

?測試行業現在70%是以手工測試為主,那么只有20%是自動化測試,剩下的10%是性能測試。
有人可能會說,我現在做手工,我為什么要學自動化呢?我去學性能更好性能的人更少?

其實,性能的要求比自動化要求更高,那個是更高級別的了。

現在看一下手工測試工作,只有那么多,70%。但是每年的應屆生卻在增加。那么,你是想通過手工測試來挑戰高薪嗎?

根據國內普遍現象來看,手工測試的薪資沒有后兩者的高,這是不爭的事實,后兩者更具有難道和挑戰。

絕大多數的情況下啊,沒有絕對的啊,如果說你說你那個自動化剛工作的沒有,我這個手工測試工作了4 5年的,那當然沒有可比性。

那么如果說你的基礎不好,你又想改變這個現狀,那么你就只有學習或者培訓。

02、自動化測試入門實例

下面看幾個簡單的程序。這里打開eclipse,這是一個簡單的一個Java的一個程序啊,能夠打開一個網頁。

然后登錄,下單。它的流程是什么樣的,運行一下。

這里用的是Chrome瀏覽器,打開了Chrome瀏覽器,它會自動去登陸,然后以及跳轉到商品詳情頁進行一個下單。

?現在已經在登錄頁面進行登錄。登錄完了之后,自動跳轉到一個商品詳情頁,然后點擊立即購買,之后跳轉到確認訂單頁,然后直接跳轉到支付中心!

然后立即支付。

?支付完,那這樣的自動化腳本算是自動化嗎?

答案是肯定的,這是我們第一個版本,那我們再看看我們的第二個版本。

第二個版本是這樣的,就說我們把所有的操作啊都封裝好了,都封裝成每一個方法輸入,我們封裝成一個方法,選擇梳成一個方法,多選框也封裝成一個方法,那這樣的就算是自動化測試嗎?

答案肯定還是肯定的。

如果說你學到這個地步,那么我只能算說,你算入門了,那什么樣的才是真正的自動化測試呢?來我這里看一下,我這里打開了一個谷歌瀏覽器,打開了Chrome。

回過頭來看,那如果我們做自動化要做到這樣,那他應該是怎么去實現的呢?

首先我們要掌握我們這個自動化工程,必須要掌握自動化基礎。自動化基礎包括哪些東西呢?自動化用例的編寫以及Selenium的優勢以及原理,還有自動化環境的一個搭建。

03、Selenium基礎知識概要

當我們有自動化基礎的時候,我們就需要去掌握什么,掌握我們Selenum相關的知識,Selenum的一個基礎知識需要有哪些呢?如下圖:

?常見的8大元素定位,還有擴展的東西,比如說表格,還有什么常見元素的處理,比如說你要操作一個元素,你的element點擊輸入信息等等,還有下拉框元素的處理,不同窗口之間的切換,這些會運用的非常多。

還有元素的拼接,元素的進階,如果說當前頁面沒有出現什么元素,那如何才能出現,還有元素的一個等待。
那么當我們有Selenium基礎之后,我們是不是就應該是向著更高級的去發展,那怎么去發展,那么肯定是需求到框架。

當我們要做自動化測試工程師的時候,我們一定要明白一個道理,就是說我們肯定是首先要拿到自動化的一個需求,所以說拿到需求之后,我們要怎么到我們剛剛展現的這個框架的一個開發,那中間要經歷哪些途徑呢?來我們看一下。

04、自動化測試需求分析

(從需求出發到自動化)

如下圖,描述了自動化測試需要分析的基礎步驟:

?首先需求分析,需求分析完了之后要有一個用例設計,用例設計當然也包含了我們自動化用例的設計,如果說你連功能測試都做不好,那么我建議你可以先看一下自動化用例的一個設計,因為我們這個自動化用例設計和功能測試沒有太大的區別,但是他會更加的詳細,當我們有用例設計之后,我們是不是要看基礎腳本的開發了,因為我們已經掌握了Selenium基礎。

是不是要試著研究,怎么去開發到這一步,看不到任何的定位信息,我們把這一步學完之后呢,我們就干什么? 登陸和購物腳本的重構了,因為在整個的過程中,我們是做什么呢?我們拿一個登錄,購物這兩個流程來看。

一個登錄是1個簡單的例子,但是一個購物他就是一個非常復雜的一個流程,我們會把這兩個例子拿過來講那么。

這兩個例子呢,最開始都是有基礎腳本的,最后,通過腳本的重構,把這兩個腳本進行還原。最后呢,就是封裝讀取,配置文件,在做自動化的時候,如果說你不會讀取配置文件,那是不可能的,因為我們很多的操作都需要通過讀取配置文件來完成讀取配置完成之后呢,我們就可以去實現一個數據驅動。

當一個case失敗了,怎樣收集信息呢?很多情況下,測試用例失敗后,我們并不能準確知道哪里失敗了,這個時候就需要進行截圖,打印執行日志等,必要的時候甚至斷點調試。

總結

相比于手工測試,自動化測試具備一定的難度和挑戰性,但二者必然是一個相互結合的整體。對于想要在測試行業長遠發展的同學,自動化測試技能還是必不可少的。本文只是一個入門教程介紹,雖然自動化測試難度不大,但流程很長,門檻不高,但知識技能面豐富!

Python接口自動化測試零基礎入門到精通(2023最新版)

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

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

相關文章

介紹一個功能強大的shopify app——TINYIMG

各位觀眾老爺,南來的北往的,東去的西走的,今天給大家推薦一個功能很強大的shopify app 當當當 那就是 tinyimg 這個app有多牛逼呢,且聽我慢慢道來 首先這個app可以用來優化圖片大小,給你的網站提提速 然后這個app還可…

Android使用AIDL+MemoryFile傳遞大數據

Android進程間通信經常會使用AIDL,簡單方便,但是數據量有限制,超過一定值會報錯: E !!! FAILED BINDER TRANSACTION !!! (parcel size 2073744) 可以通過使用AIDLMemoryFile傳遞大數據 新建AIDL接口: interface On…

CCFCSP試題編號:201803-2試題名稱:碰撞的小球

一、題目描述 二、思路 1.首先妾身分析這個題目,想要解題,得得解決2個問題。 1)判斷小球到達端點或碰撞然后改變方向; 2)每時刻都要改變位置 兩個問題都比較好解決,1)只要簡單判斷坐標&…

形態學操作—膨脹

在 OpenCV 中,圖像形態學操作是一組基于圖像形狀的處理技術,其中膨脹(Dilation)是其中之一。膨脹操作可用于圖像處理中的特征增強、去噪、分割和邊緣檢測等。其基本原理是利用結構元素(Kernel 或 Structuring Element&…

Tomcat實現WebSocket即時通訊 Java實現WebSocket的兩種方式

HTTP協議是“請求-響應”模式,瀏覽器必須先發請求給服務器,服務器才會響應該請求。即服務器不會主動發送數據給瀏覽器。 實時性要求高的應用,如在線游戲、股票實時報價和在線協同編輯等,瀏覽器需實時顯示服務器的最新數據&#x…

UML建模圖文詳解教程06——順序圖

版權聲明 本文原創作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl本文參考資料:《UML面向對象分析、建模與設計(第2版)》呂云翔,趙天宇 著 順序圖概述 順序圖(sequence diagram,也…

(三)C語言之for語句概述

&#xff08;三&#xff09;C語言之for語句概述 一、使用for語句實現打印華氏溫度與攝氏溫度轉換二、for語句概述三、練習 一、使用for語句實現打印華氏溫度與攝氏溫度轉換 #include <stdio.h> /*當華氏溫度為 0,20,40,...300時&#xff0c;打印出華氏溫度與攝氏溫度對照…

一個簡單的QT應用示例

一個簡單的QT應用示例&#xff1a;創建一個窗口程序。 首先&#xff0c;確保已經安裝了Qt開發環境。接下來&#xff0c;按照以下步驟創建一個簡單的窗口程序&#xff1a; 1. 打開Qt Creator&#xff0c;點擊“新建文件或項目”。 2. 選擇“應用程序”&#xff0c;然后點擊“下…

【MATLAB】根軌跡的繪制及rltool工具的使用

目錄 一、MATLAB中傳遞函數的表示二、rlocus函數繪制根軌跡1.常規根軌跡仿真示例2.參數根軌跡仿真示例3.零度根軌跡仿真示例 三、圖形化工具rltool介紹 一、MATLAB中傳遞函數的表示 在繪制系統的根軌跡之前&#xff0c;需要知道傳遞函數在matlab中如何表示。 在matlab中&#…

VOC數據集和COCO數據集直接的相互轉換

VOC數據集格式 get_list.py import os import random import shutil# 設置隨機種子 random.seed(1000)# 判斷Annotations和JpegImages是否對應 train_precent=0.8 label_path= "../../Annotations" print(os.path.abspath(label_path)) save="../Main" pr…

repo init報error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

repo init報error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 1 repo init出錯的信息2 解決方法 在ubuntu執行repo init的時候報了repo init報error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed這種錯誤&#xff0c;解決方法是需要更新本地…

PS給圖片增加一個白色邊框。

問題描述&#xff1a;PS如何給圖片增加一個白色邊框&#xff1f; 解決辦法&#xff1a; 第一步&#xff1a;使用shiftAltA快捷鍵&#xff0c;在圖片四周拉出一個灰白色的邊框。如下圖所示&#xff1a; 第二步&#xff0c;使用快捷鍵Ctrlshiftn新建一個圖層。 并把新建的圖層…

創建maven的web項目

&#xff08;一&#xff09;創建maven的web項目 Step1、創建一個普通的maven項目 &#xff08;1&#xff09;新建一個empty project&#xff0c;命名為SSM2。 點擊項目名&#xff0c;右鍵new&#xff0c;選擇Module&#xff0c;左側選擇“Maven archetype”&#xff0c;可以給…

我叫:快速排序【JAVA】

1.自我介紹 1.快速排序是由東尼霍爾所發展的一種排序算法。 2.快速排序又是一種分而治之思想在排序算法上的典型應用。 3.本質上來看&#xff0c;快速排序應該算是在冒泡排序基礎上的遞歸分治法。 2.思想共享 快速排序(Quicksort)是對冒泡排序的一種改進。基本思想是:通過一趟…

【iOS】數據持久化(二)之歸檔和解檔(iOS 13以后)

在之前介紹的數據存儲方法中&#xff0c;不管是NSUserDefaults還是plist文件都不能對自定義對象進行存儲&#xff0c;OC提供的解歸檔恰好解決了這個問題 本片文章對 iOS13 以后的版本 歸檔和解檔 進行介紹。老版本的解歸檔見這篇文章&#xff1a;【iOS】文件&#xff08;對象數…

Python Anaconda創建虛擬環境及Pycharm使用虛擬環境

目錄 前言 一、Anaconda與Pycharm 二、conda常用命令 三、Pycharm使用虛擬環境 總結 前言 我們在做開發任務時可能會創建多個項目&#xff0c;這些項目可能會依賴于不同的Python環境。比如有的用到Python3.6、有的用到Python3.7&#xff1b;有的用Pytorch開發、有的用Tens…

解決:ImportError: cannot import name ‘Sequence‘ from ‘collections‘

解決&#xff1a;ImportError: cannot import name ‘Sequence‘ from ‘collections‘ 背景 在使用之前的代碼時&#xff0c;報錯&#xff1a; File “G:\research\code\MicroDE_py\plot_bcic_iv_4_ecog_trial.py”, line 262, in from skorch.helper import predefined_spl…

Java 數據結構篇-實現單鏈表核心API

&#x1f525;博客主頁&#xff1a; 小扳_-CSDN博客 ?感謝大家點贊&#x1f44d;收藏?評論? 文章目錄 1.0 單鏈表的說明 2.0 單鏈表的創建 2.1 單鏈表 - 頭插節點 2.2 單鏈表 - 遍歷 2.2.1 使用簡單的 for/while 循環 2.2.2 實現 forEach 方法 2.2.3 實現迭代器的方法 2.…

UE5 中的computer shader使用

轉載&#xff1a;UE5 中的computer shader使用 - 知乎 (zhihu.com) 目標 通過藍圖輸入參數&#xff0c;經過Compture Shader做矩陣運算 流程 1. 新建插件 2. 插件設置 3. 聲明和GPU內存對齊的參數結構 4. 聲明Compture Shader結構 5. 參數綁定 6. 著色器實現 7. 分配 work gr…

VueRouter

路由介紹 1.思考 單頁面應用程序&#xff0c;之所以開發效率高&#xff0c;性能好&#xff0c;用戶體驗好 最大的原因就是&#xff1a;頁面按需更新 比如當點擊【發現音樂】和【關注】時&#xff0c;只是更新下面部分內容&#xff0c;對于頭部是不更新的 要按需更新&#…