Selenium–資料驅動(python)

小喜_ww發表於2018-05-18

前言:

什麼是資料驅動?

從它的本意來解釋,就是資料的改變從而驅動自動化測試的執行,最終引起測試結果的改變。其實就是引數化。


本次介紹2種檔案驅動:ini檔案和yaml檔案


一、ini檔案

1、定義

程式沒有任何配置檔案,那麼它對外是全封閉的,一旦程式需要修改一些引數必須要修改程式程式碼本身並重新編譯,為了讓程式出廠後還能根據需要進行必要的配置,所以要用配置檔案;配置檔案有很多種,如INI配置檔案,XML配置檔案,cfg配置檔案,還有就是可以使用系統登錄檔等。

INI ”就是英文 “initialization”的頭三個字母的縮寫;當然INI file的字尾名也不一定是”.ini”也可以是”.cfg”,”.conf ”或者是”.txt”。

2、經典格式

INI檔案的格式很簡單,最基本的三個要素是:parameters,sections和comments。

INI所包含的最基本的“元素”就是parameter;每一個parameter都有一個name和一個value

所有的parameters都是以sections為單位結合在一起的。所有的section名稱都是獨佔一行,並且sections名字都被方括號包圍著,在section宣告後的所有parameters都是屬於該section

在INI檔案中comments註釋語句是以分號“;”開始的

3、具體檔案舉例

image

4、python讀寫ini方法

需要匯入Python自帶的模組, 用來讀寫配置檔案:

import ConfigParser

**讀取ini檔案**:

read(filename):讀取ini檔案中的內容

sections():得到所有section,返回列表形式

options(section):得到給定section的所有option

items(section):得到指定section的所有key-value

get(section,option):得到section中的option值,返回str型別

getint(section,option):得到section中的option值,返回int型別

寫入ini檔案

write(filename):寫入ini檔案中的內容

add_section(section):寫入指定section

Set(section,option,value):寫入指定section中的option的值

5、讀取ini檔案具體程式碼範例

import configparser

# ======== Reading mail_config.ini setting ===========

cf = configparser.ConfigParser()

cf.readfp(open("D:\API\config\mail_config.ini"))

smtpserver = cf.get("mail", "smtpserver")

sender = cf.get("mail", "sender")receiver = cf.get("mail", "receiver")

username = cf.get("mail", "username")password = cf.get("mail", "password")

6、寫入ini檔案具體程式碼範例

import configparser

# ======== write 1.ini setting ===========

config = configparser.ConfigParser()

# set a number of parameters

config.add_section("book")

config.set("book", "title", "the python standard library")

config.set("book","author", "fredrik lundh")

config.add_section("ematter")

config.set("ematter", "pages","250")

# write to fileconfig.write(open(`1.ini`, "w"))

二、yaml檔案

1、YAML定義

YAML的官方定義很簡單,即“一種人性化的資料格式定義語言”,其主要功能用途類似於XML或JSON,YAML使用空白字元和分行來分隔資料,且巧妙避開各種封閉符號,如:引號、括號等,以避免這些符號在複雜層次結構中變得難以辨認。YAML的語法與高階語言類似,可以很簡單地表述“序列(java中的list)、雜湊表(java中的map)、標量(java中的基本型別等)”資料結構,它重點強調可閱讀性。

2、YAML用途

YAML比較適合做序列化。因為它是宿主語言資料型別直轉的。

YAML做配置檔案也不錯。寫YAML要比寫XML快得多(無需關注標籤或引號),並且比ini文件功能更強。

3、YAML vs XML

與YAML相似的資料格式定義語言是XML,YAML比XML優越性表現在

  • YAML的可讀性好
  • YAML和指令碼語言的互動性好
  • YAML使用實現語言的資料型別
  • YAML有一個一致的資訊模型
  • YAML易於實現

上面5條是XML不足的地方,同時,YAML也具有XML的下列優點:

  • YAML可以基於流來處理
  • YAML表達能力強,擴充套件性好

YAML類似於XML的資料描述語言,語法比XML簡單很多,YAML試圖用一種比XML更敏捷的方式,來完成XML所完成的任務。

4、YAML-物件示例

YAML 支援的資料結構有三種。

-物件:鍵值對的集合,又稱為對映(mapping)/ 雜湊(hashes) / 字典(dictionary)

-陣列:一組按次序排列的值,又稱為序列(sequence) / 列表(list)

-純量(scalars):單個的、不可再分的值

image

5、python讀取YAML檔案

程式碼片段如下:

import yaml

# ======== Reading mail.yaml setting ===========

fr = open("D:\API\config\mail.yaml")

get_config = yaml.load(fr)

smtpserver = get_config["smtpserver"]

sender = get_config["sender"]

receiver = get_config["receiver"]

username = get_config["username"]

password  = get_config["password"]

以上為最簡單的用法,大家如有興趣可以自行延伸學習~~


相關文章