Selenium 測試用例編寫

編寫Selenium測試用例就是模擬用戶在瀏覽器上的一系列操作,通過腳本來完成自動化測試。

編寫測試用例的優勢:

開源,免費。
支持多種瀏覽器 IE,Firefox,Chrome,Safari。
支持多平臺 Windows,Linux,Mac。
支持多語言 Python,Java,C#。
對 Web 支持良好。
簡單,靈活。
支持分布式測試用例執行。

引入依賴

引入依賴是為了調用 webdriver 中的方法來與瀏覽器進行交互以實現操作步驟。

Python版本

from selenium import webdriver
  • Java版本
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;

測試用例的流程

測試用例是為了實施測試從而向被測試的系統提供的一組集合,這組集合包含:測試環境、操作步驟、測試數據、預期結果等。

注意:一條測試用例的最終結果只有一個:成功或者失敗。

三大核心要素為 :標題 、步驟 、預期結果

標題:是對測試用例的描述,標題應該清楚的表達測試用例的內容
步驟:對測試執行過程進行描述
預期結果:提供測試執行的預期結果,預期結果一般是根據需求得出,如果實際結果和預期結果一致則測試通過,反之失敗。

實戰演練

首先是在代碼的最上面導入了 Selenium 的包,其次是測試方法命名、測試步驟、斷言。測試用例內容是要斷言打開百度頁面所展現的內容與所期望的值是否相等。

Python版本

from selenium import webdriver# 測試的標題即 test_search
def test_search():driver = webdriver.Chrome()# 測試的步驟driver.get('https://www.baidu.com')search = driver.find_element_by_id('su').get_attribute('value')# 斷言預期結果assert search == "百度"
  • Java版本
import org.junit.jupiter.api.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
public class webTest {private ChromeDriver driver;@Testvoid search() throws InterruptedException {//實例化driverdriver = new ChromeDriver();//打開網頁driver.get("https://www.baidu.com");//測試的步驟String data = driver.findElement(By.id("su")).getAttribute("value");assert data.equals("百度");}
}

這里要斷言打開百度頁面所展現的內容與所期望的值是否相等。因為實際獲取到的內容應該是百度一下而不是百度,所以斷言錯誤。

FAILED                                         [100%]
test_demo.py:3 (test_search)
百度一下 != 百度Expected :百度
Actual   :百度一下
<Click to see difference>def test_search():driver = webdriver.Chrome()driver.get('https://www.baidu.com')search = driver.find_element_by_id('su').get_attribute('value')
>       assert search == "百度"
E       AssertionError: assert '百度一下' == '百度'
test_demo.py:9: AssertionError

跟著實戰演練,開啟編寫Selenium測試用例之旅吧~

最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:【文末領取】


? ? ?【下面是我整理的2023年最全的軟件測試工程師學習知識架構體系圖+全套資料】


一、Python編程入門到精通

二、接口自動化項目實戰??

三、Web自動化項目實戰


四、App自動化項目實戰??

五、一線大廠簡歷


六、測試開發DevOps體系??

七、常用自動化測試工具

八、JMeter性能測試??

九、總結(文末尾部小驚喜)

生命不息,奮斗不止。每一份努力都不會被辜負,只要堅持不懈,終究會有回報。珍惜時間,追求夢想。不忘初心,砥礪前行。你的未來,由你掌握!

生命短暫,時間寶貴,我們無法預知未來會發生什么,但我們可以掌握當下。珍惜每一天,努力奮斗,讓自己變得更加強大和優秀。堅定信念,執著追求,成功終將屬于你!

只有不斷地挑戰自己,才能不斷地超越自己。堅持追求夢想,勇敢前行,你就會發現奮斗的過程是如此美好而值得。相信自己,你一定可以做到!?

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

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

相關文章

day-23 代碼隨想錄算法訓練營(19)part09

669.修剪二叉搜索樹 思路一&#xff1a;根據二叉搜索樹的特性進行中間值與去區間值判斷&#xff0c;有三種情況&#xff1a;1.在區間中&#xff0c;所以左右子樹都可能在區間中&#xff1b; 2.在區間外面的左側&#xff0c;必然只有右子樹可能存在區間中&#xff1b;3.在區間外…

Spring中JavaBean的生命周期及模式

( 本篇文章大部分講述了是底層知識&#xff0c;理念及原理 ) ( 如果只想了解&#xff0c;看我標記的重點即可&#xff0c;如果想明白其中原理&#xff0c;請耐心看完&#xff0c;對你大有受益 ) 目錄 一、簡介 ( 1 ) 是什么 ( 2 ) 背景概述 ( 3 ) 作用 二、生命周期 2.1 …

【計算機視覺|生成對抗】StackGAN:使用堆疊生成對抗網絡進行文本到照片逼真圖像合成

本系列博文為深度學習/計算機視覺論文筆記&#xff0c;轉載請注明出處 標題&#xff1a;StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks 鏈接&#xff1a;[1612.03242] StackGAN: Text to Photo-realistic Image Synthesis…

ViewFs And Federation On HDFS

序言 ViewFs 是在Federation的基礎上提出的,用于通過一個HDFS路徑來訪問多個NameSpace,同時與ViewFs搭配的技術是client-side mount table(這個就是具體的規則配置信息可以放置在core.xml中,也可以放置在mountTable.xml中). 總的來說ViewFs的其實就是一個中間層,用于去連接不…

Vue3 setup語法糖 解決富文本編輯器上傳圖片64位碼過長問題 quill-image-extend-module

引言&#xff1a; 富文本編輯器傳圖片會解碼成64位&#xff0c;非常長導致數據庫會報錯第一種方法&#xff1a;將數據庫類型改成 mediumtext第二種辦法&#xff1a;本文中的方法 說明&#xff0c;本周文所用語法糖為Vue3 setup語法&#xff0c;即<script setup> 思路 攔…

HIVE SQL通過Lateral View + explode實現列轉行

原表&#xff1a; abAndy<碟中諜>,<諜影重重>,<007>MOMO<小鞋子>,<朋友啊你的家在哪里> 實現效果 abAndy<碟中諜>Andy<諜影重重>Andy<007>MOMO<小鞋子>MOMO<朋友啊你的家在哪里> 實現代碼&#xff1a; selec…

STM32 F103C8T6學習筆記8:0.96寸單色OLED顯示屏顯示字符

使用STM32F103 C8T6 驅動0.96寸單色OLED顯示屏: OLED顯示屏的驅動&#xff0c;在設計開發中OLED顯示屏十分常見&#xff0c;因此今日學習一下。一篇文章從程序到顯示都講通。 文章提供源碼、原理解釋、測試工程下載&#xff0c;測試效果圖展示。 目錄 OLED驅動原理—IIC通信…

無涯教程-Perl - undef函數

描述 此函數未定義EXPR的值。用于標量,列表,哈希,函數或類型范圍。在帶有諸如undef $hash {$key}之類的語句的哈希上使用&#xff1b;實際上將指定鍵的值設置為未定義的值。 如果要從哈希中刪除元素,請使用delete函數。 語法 以下是此函數的簡單語法- undef EXPRundef返回…

Java進階篇--迭代器模式

目錄 同步迭代器&#xff08;Synchronous Iterator&#xff09;&#xff1a; Iterator 接口 常用方法&#xff1a; 注意&#xff1a; 擴展小知識: 異步迭代器&#xff08;Asynchronous Iterator&#xff09;&#xff1a; 常用的方法 注意&#xff1a; 總結&#xff1a…

LeetCode 每日一題 2023/8/14-2023/8/20

記錄了初步解題思路 以及本地實現代碼&#xff1b;并不一定為最優 也希望大家能一起探討 一起進步 目錄 8/14 617. 合并二叉樹8/15 833. 字符串中的查找與替換8/16 2682. 找出轉圈游戲輸家8/17 1444. 切披薩的方案數8/18 1388. 3n 塊披薩8/19 2235. 兩整數相加8/20 8/14 617. 合…

【學習FreeRTOS】第9章——FreeRTOS任務調度

1.開啟任務調度器 vTaskStartScheduler() 作用&#xff1a;用于啟動任務調度器&#xff0c;任務調度器啟動后&#xff0c; FreeRTOS 便會開始進行任務調度【動態創建任務為例】 創建空閑任務如果使能軟件定時器&#xff0c;則創建定時器任務關閉中斷&#xff0c;防止調度器開…

Microsoft ISA服務器配置及日志分析

Microsoft ISA 分析器工具&#xff0c;可分析 Microsoft ISA 服務器&#xff08;或 Forefront 威脅管理網關服務器&#xff09;的日志并生成安全和流量報告。支持來自 Microsoft ISA 服務器組件的以下日志&#xff1a; 數據包過濾器ISA 服務器防火墻服務ISA 服務器網絡代理服務…

透過源碼理解Flutter中widget、state和element的關系

1、framework源碼組成 Flutter中widget、state、element的源碼位于framework.dart中&#xff0c;整個文件6693行(版本Flutter 3.12.0-14.0.pre.28)。整個代碼可劃分為若干部分&#xff0c;主要包括key、widget、state、element四部分。 1.1 key 關于key的代碼65行到272行&am…

NVIDIA GPU驅動和CUDA工具包 Linux CentOS 7 在線安裝指南

挑選指定系統和對應的GPU型號下載驅動和CUDA工具包: Linux CentOS安裝NVIDIA GPU驅動程序和NVIDIA CUDA工具包_centos安裝顯卡驅動和cuda_Entropy-Go的博客-CSDN博客 相比之下&#xff0c;本文是在線安裝NVIDIA GPU驅動和CUDA工具包方式&#xff0c;省去挑選對應正確安裝包的煩…

Uniapp Syntax Error: Error: Unbalanced delimiter found in string

報錯 in ./src/pages/user/components/tasks.vue?vue&typescript&langjs&Syntax Error: Error: Unbalanced delimiter found in string...這邊導致文件的原因&#xff1a;可能是條件編譯語法不小心刪了某個字符&#xff0c;導致不全&#xff0c;無法形成一對。 //…

GuLi商城-前端基礎Vue-生命周期和鉤子函數

下圖展示了實例的生命周期。你不需要立馬弄明白所有的東西&#xff0c;不過隨著你的不斷學習和使用&#xff0c;它 的參考價值會越來越高。 VUE 的生命周期指的是組件在創建、運行和銷毀過程中所經歷的一系列事件&#xff0c;通過這些事件可以 讓開發者在不同階段進行相應的…

vue3 + antv/x6 實現拖拽側邊欄節點到畫布

前篇&#xff1a;vue3ts使用antv/x6 自定義節點 前篇&#xff1a;vue3antv x6自定義節點樣式 1、創建側邊欄 用antd的menu來做側邊欄 npm i --save ant-design-vue4.x//入口文件main.js內 import Antd from ant-design-vue; import App from ./App; import ant-design-vue/…

安卓的代碼加固和其他安全問題

文章目錄 安卓加固apk文件結構dex加固過程 其它安全問題 安卓加固 從App的加固技術來看:主流分為dex加密和so加密,目前來看保護dex文件更為重要,因為dex反編譯后的java代碼可讀性更強。 android-ndk: Native Development Kit 官網解釋&#xff1a;這套工具使您能在 Android 應…

Kvm配置ovs網橋

環境&#xff1a;部署在kvm虛擬環境上&#xff08;讓虛擬機和宿主機都可以直接從路由器獲取到獨立ip&#xff09; 1、安裝ovs軟件安裝包并啟動服務&#xff08;一般采用源碼安裝&#xff0c;此處用yum安裝&#xff09; yum install openvswitch-2.9.0-3.el7.x86_64.rpm syste…

Git常見操作

一、全局配置命令 配置級別&#xff1a; –local&#xff08;默認&#xff0c;高級優先&#xff09;&#xff1a;只影響本地倉庫 –global(中優先級)&#xff1a;只影響所有當前用戶的git倉庫 –system&#xff08;低優先級&#xff09;&#xff1a;影響到全系統的git倉庫 1…