2010年4月21日 星期三

初探 YAML (1)

YAML的語法和其他高階語言類似,並且可以簡單表達清單、雜湊表,純量等資料形態。
因為其語言特性,可以讓人眼很容易且清楚的識別其資訊。


特色
  它使用空白符號縮排和大量依賴外觀的特色,特別適合用來表達或編輯

  • 資料結構
  • 各種設定檔
  • 傾印除錯內容
  • 文件大綱(例如:許多電子郵件標題格式和YAML非常接近)。
  • 儘管它比較適合用來表達階層式(hierarchical model)的資料結構,不過也有精緻的語法可以表示關聯性(relational model)的資料。
  • 由於YAML使用空白字元和分行來分隔資料,所以特別適用於script language (Ex: grepPythonPerlRuby)。
  • 其讓人最容易上手的特色是巧妙避開各種封閉符號 (EX: 引號、各種括號等,這些符號在巢狀結構時會變得複雜而難以辨認。

安裝

2. 解壓至PyYMAL-3.09
3. cd PyYMAL-3.09
4. 執行下列指令
python setup.py install

範例


# 筆者特別愛用 Python 來使用YAML. 因為資料結構可直接套用。
# yaml_test1.py




執行結果

$ python py_yaml_test.py 
a: 1
b: {c: 3, d: 4}

cost: 50000
depth: 5
flags: [INT, WIS, SPEED, STEALTH]
name: The Cloak 'Colluin'
rarity: 45
weight: 10


Reference for PyYAML


 更新

  • update syntax 已測試 Python 2.7.12, Python 3.5.2



2010年4月3日 星期六

使用者介面自動化測試使用sikuli

MIT 的學生開發一個使用視窗截圖來代替程式碼的方法。
你可很容易使用它的圖形化介面來進行自動化的測試。
它可大幅簡化你重覆測試程式的時間。

例如: 

# jPython syntax
# 關閉 find 找不到圖示的錯誤

setThrowException(False)
# 設定搜尋圖示的時間 (ms)
setAutoWaitTimeout(3000)

# 找到桌面上的VIM的圖示

xs = find()
# 若圖示存在, 則以雙擊開啓
if xs:
    doubleClick(xs)

# 等待程式開啟到下列畫面
wait()
# 按'a' 進入編輯模式
type('a')
# 輸入'hello'
type('hello')
# 按ESC鍵, 回到命令模式
type(Key.ESC)
# 儲存檔案
type(':wq D:\hello.txt')
type(Key.ENTER)

以文字內容來看
# text openvim.py
setThrowException(False)
setAutoWaitTimeout(3000)
xs = find("1270226485109.png")
if xs:
  doubleClick(xs)
wait("1270227406546.png")
type('a')
type('hello')
type(Key.ESC)
type(':wq D:\hello.txt')
type(Key.ENTER)

Download
你可以從此處下載測試版:
http://groups.csail.mit.edu/uid/sikuli/