1. 程式人生 > >BDD之Behave寫某站點的自動化登入測試

BDD之Behave寫某站點的自動化登入測試

00 前言

    BDD,即行為驅動開發,用自然語言描述程式設計。

    程式為一個簡單的示例:站點的登入

    環境:Python 3.5

目錄及檔案結構: Feature:--steps ----login.py--environment.py--login.feature

01 程式碼

    1.1 login.feature

    

    1.2 environment.py

# -*- utf-8 -*-
from selenium import webdriver

def before_all(context):
    context.iatc_url = 'http://iatc.soft.rz/portal/'
    context.driver = webdriver.Firefox()

def after_all(context):
    context.driver.quit()

    1.3  logins.py

# This Python file uses the following encoding: utf-8
#../logins.py

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By



@Given('I open url')
def step_impl(context):
    context.driver.get(context.iatc_url)
	
@when('I input username & password, press login')
def step_impl(context):
    context.ele_input_id = context.driver.find_element_by_id("txt_uid")
    context.ele_input_id.send_keys("
[email protected]
") context.ele_input_pw = context.driver.find_element_by_id("txt_pwd") context.ele_input_pw.send_keys("Win.12345") context.ele_btn = context.driver.find_element_by_id("btnLogin") context.ele_btn.click() @Then('find login username') def step_impl(context): context.sign_link = WebDriverWait(context.driver, 60).until( expected_conditions.text_to_be_present_in_element(('xpath', ".//*[@id='workspace_info']/span[4]"), "Powered By")) context.ele_results = context.driver.find_element_by_xpath(".//*[@id='workspace_info']/span[4]") context.expected_results = 'Powered' print("ele_results: ", context.ele_results.text) context.driver.implicitly_wait(10) if context.expected_results in context.ele_results.text: assert True else: assert False
    以上,實現登入自動化

相關推薦

BDDBehave站點自動化登入測試

00 前言    BDD,即行為驅動開發,用自然語言描述程式設計。    程式為一個簡單的示例:站點的登入    環境:Python 3.5 目錄及檔案結構: Feature:--steps ----login.py--environment.py--login.

一次完整的自動化登入測試-基於python+selenium進行cnblog的自動化登入測試

Web登入測試是很常見的測試!手動測試大家再熟悉不過了,那如何進行自動化登入測試呢!本文作者就用python+selenium結合unittest單元測試框架來進行一次簡單但比較完整的cnblog自動化登入測試,給大家提供點參考!下面就包括測試程式碼和每種測試情況的截圖:

【前端測試聲系列一】自動化UI測試的痛和癢

先引用一句話“UI自動化,聽起來很神祕,學起來很簡單,真正用起來卻很困難”更有人認為“UI自動化成本高效果差”,今天跟大家一起淺談下UI自動化測試的痛和癢?UI自動化測試的目的很明顯,傳統的手工測試,重複度高,效率低,易出錯,資源投入成本高,當面對這些問題時,我們不難發現UI

C++動態站點HelloWorld!

reat pre ice short share endif 世界 一個 editor 演示樣例源碼下載地址:Fetch_Platform.7z 更復雜的代碼可參考本博客BBS的實現 簡單的說。動態站點就是能夠動態變更的站點。動態變化的內容通常來自後端數

後臺自動化模擬登入請假

import time from selenium import webdriver from selenium.webdriver.firefox.options import Options as FOptions options=FOptions() browser=webdriver.Fire

基於Python的介面自動化實戰-基礎篇配置檔案

引言         在編寫介面自動化測試指令碼時,有時我們需要在程式碼中定義變數並給變數固定的賦值。為了統一管理和操作這些固定的變數,咱們一般會將這些固定的變數以一定規則配置到指定的配置檔案中,後續需要用到這些變數和變數值時通過程式碼讀取或者寫入資料到該配置檔案即可,

線程同步鎖(鎖操作的補充)

允許 資源 加鎖 函數 申請 tex bject def 讀取 輕量級的讀寫鎖(Slim Reader-Writer locks):讀寫鎖實際是一種特殊的自旋鎖,它把對共享資源的訪問者劃分成讀者和寫者,讀者只對共享資源進行讀訪問,寫者則需要對共享資源進行寫操作。這種鎖相對於

多線程編程

|| 概念 release 線程編程 相關 修改 reader lin 實現   在《多線程編程之Linux環境下的多線程(二)》一文中提到了Linux環境下的多線程同步機制之一的讀寫鎖。本文再詳細寫一下讀寫鎖的概念和原理。 一、什麽是讀寫鎖   讀寫鎖(也叫共享-獨占鎖)

使用jmeter+ant進行接口自動化測試(數據驅動)二:利用apache-ant執行測試用例並生成HTML格式測試報告

extras true -c 註釋符 www 文件的 介紹 ntc encoding 在 使用jmeter+ant進行接口自動化測試(數據驅動)之一 介紹了如何使用csv文件來批量管理接口 本次接著介紹如何利用apache-ant執行測試用例並生成HTML格式測試報告 ①下

透徹理解Spring事務設計思想實現

數據庫操作 cal 了解 hashmap 個數 這一 use action 管道 前言 事務,是描述一組操作的抽象,比如對數據庫的一組操作,要麽全部成功,要麽全部失敗。事務具有4個特性:Atomicity(原子性),Consistency(一致性),Isolation(隔離

理解數據庫連接池底層原理實現

ring cda color 要去 分配 .com 管理 roc tex 前言 數據庫連接池的基本思想是:為數據庫連接建立一個“緩沖池”,預先在池中放入一定數量的數據庫連接管道,需要時,從池子中取出管道進行使用,操作完畢後,在將管道放入池子中,從而避免了頻繁的向數據庫申請資

redis cluster 集群暢談(三) 水平擴容、slave自動化遷移

fig star init.d 物理 成功 其它 -i .html enabled    上一篇 http://www.cnblogs.com/qinyujie/p/9029522.html, 主要講解 實驗多master寫入、讀寫分離、實驗自動故障切換(高可用性

網易cetus分離

cetus 中間件 讀寫分離 一、 簡介 Cetus是由C語言開發的關系型數據庫MySQL的中間件,主要提供了一個全面的數據庫訪問代理功能。Cetus連接方式與MySQL基本兼容,應用程序幾乎不用修改即可通過Cetus訪問數據庫,實現了數據庫層的水平擴展和高可用。Cetus由網易樂得專家技術團隊

iOS開發使用fastlane工具實現自動化打包發布

TP ruby success 2.0 提交 gui ava 新的 unit test p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #000000; backgroun

8.spark core數據

鍵值對 逗號 .data air lines man inf return ear spark支持多種數據源,從總體來分分為兩大部分:文件系統和數據庫。 文件系統 ??文件系統主要有本地文件系統、Amazon S3、HDFS等。 ??文件系統中存儲的文件有多種存儲格式。sp

12.spark sql數據

rcfile serializa fig jdbc連接 nco .sh nat 字段 jdb 簡介 ??Spark SQL支持多種結構化數據源,輕松從各種數據源中讀取Row對象。這些數據源包括Parquet、JSON、Hive表及關系型數據庫等。 ??當只使用一部分字段時,

C++strlen函數

sse details nbsp blank tail char 實現 article != 代碼: int strlen(const char *str){ assert(str!=NULL); intlen=0; while((*str++)!=‘\0‘) len

Hive——怎樣exist/in子句

轉載請註明出處:https://blog.csdn.net/l1028386804/article/details/80164963 Hive 不支援 where 子句中的子查詢, SQL 常用的 exist in 子句需要改寫。這一改寫相對簡單。考慮以下 SQL 查詢語句: SELECT

前端面試題二叉排序樹

前端面試題之手寫二叉排序樹 二叉排序樹:每個節點的左節點都比根節點小,右節點都比根節點大 function TreeNode(data, left, right) { //節點結構 this.val = data; this.left = left; this

MYSQL分離搭建方案

讀寫分離實現:360 Atlas(代理層實現,無需修改應用程式程式碼) 實現步驟 # 安裝 shell> rpm -i Atlas-2.2.1.el6.x86_64.rpm # 解除安裝 shell> rpm -e Atlas-2.2