發表文章

Nightwatchjs筆記(1) - 網頁自動化測試使用node.js !

圖片
Nightwatch.js是一個使用nodejs開發的E2E網頁自動化測試方案。 因為是使用nodejs,所以擴充性也是不錯的,簡潔的程式碼也容易了解,還有runner可以讓測試以單一或是使用tag或是group跑,挺方便的。 在開始弄髒手之前,必須要先安裝好 nodejs 與npm。(通常會一起裝好) 新增專案資料夾,並產生package.json管理專案資料與相關套件。 $ npm init 下載nightwatch 模組 $ npm install --save nightwatch 安裝完之後,有幾件事要先做: - 新增一個資料夾test,底下放置測試腳本。 - 新增一個檔案引入nightwatch runner,大部分是nightwatch.js require('nightwatch/bin/runner.js'); -新增config檔,nightwatch.con.js 雖然nightwatchjs的網站上將config.json與nightwatch.con.js分開,但也能合在一起。 var selenium = require('selenium-server-standalone-jar'); var chromeDriver = require('chrome-driver-standalone'); var config = { "src_folders": ["test"], "output_folder": "reports", "custom_commands_path": "command", "custom_assertions_path": "assertions", "page_objects_path": "page_obj", "globals_path": "globals/globals.js", "selenium" : { "star...

Geb筆記(3) 連接MySQL

如果希望能從資料庫讀取資料,以便檢查網頁上所呈現的值無誤,該怎麼做? Geb可以辦到這件事,應該是說,使用使用groovy連接資料庫。 1. 使用package groovy.sql Class sql 2. 我以連接mysql為例,需要MySQL Connector/J 驅動程式,而maven repository有提供。 3. 設定 @GrabConfig的類別載入器,systemClassLoader = true。 @Grab('mysql:mysql-connector-java:5.1.39') @GrabConfig(systemClassLoader=true) import groovy.sql.Sql 建立Instance Sql.newInstance(dbUrl, user, password, driverClass) def sql = Sql.newInstance("jdbc:mysql://url", "root", "mypwd", "com.mysql.jdbc.Driver") 假設要從test_db.orders取出order_name sql.execute("USE test_db"){ sql.eachRow("select * from orders") { row -> println row['order_name'] } } 參考資料 : Code Data

Geb 筆記 (2) 編碼設定

學一個東西,查到的文件資源大多使用英文,所以範例也都是測試英文網站。要測試中文網站時,就有可能會遇上編碼問題。 程式編碼 設定task執行編碼使用utf-8。 tasks.withType(GroovyCompile) { groovyOptions.encoding = 'utf-8' } 報表亂碼 設定report編碼為utf-8。 systemProperty("file.encoding","utf-8")

Geb 筆記 - (1)

聽說工程師沒有好的測試方法會慘不仁賭,而現在網頁之發達程度已經是不容小覷,能挑出蟲蟲顧品質的測試也越發的重要了。💪💪 自動化測試可以省掉人力浪費在重複按同樣按鈕,載入同樣頁面的時間,測來測去,到最後攏花去 ~ 小女花了有段時間研究,才搞清楚Geb和Selenium是什麼。 Geb Geb是一個基於強大的Selenium之自動化測試方案,使用Groovy語言撰寫,再稍稍修改成更簡易、類似jQuery的script。 通常Geb會搭上的測試framework是Spock,而專案建置工具可以選擇Maven或是Gradle。 開放源碼電子書 :  啟動Geb -- 網站自動化測試之美 Selenium Selenium則是網頁自動化測試的軟體,也由於Selenium2結合了Webdriver之後,支援更多的瀏覽器:Firefox、Chrome、IE、Safari、Opera,還有 headless 的PhantomJS與UnitHtml。 當你想測試在不同OS裡的不同瀏覽器時,可以使用Selenium RC。 Selenium也支援多種語言撰寫,畢竟那麼多人要用,有自己擅長的語言不就最棒了嗎? 而每種語言也有各自可用的框架。 這裡寫der清清楚楚 還有滿多人建議,如果你第一次摸自動化測試,從 Selenium IDE 開始吧! 不過要先裝好Java和Firefox唷 ~ Link to other nodes ! Geb Geb the Egypt God Selenium Spock Gradle Maven

Be My Eyes - 一點點付出,幫助視障者的App !

圖片
很久很久以前,不知道在哪看到了這個App的介紹,立馬載下來一直使用到現在。 我猜應該是這篇  Tech News撰寫的文  。 官網 官網裡提供捐款管道還有常見問題,我就對於視障者如何使用智慧型手機感到好奇! 裡面鼓勵大家到 Tommy Edison 在Youtube上的頻道看看,他放上影片分享身為視障者的日常生活與心路歷程。 如果你也想體驗一下視障者是如何透過輔助功能使用手機, 設定 > 一般 > 輔助 ,開啟 VoiceOver  的功能研究研究 ~ 我試著體驗了一下,發現真的是超辛苦的.....光是要移開我的AssistiveTouch就讓我理智線斷掉好幾次...😅😅😅 好的,Be My Eyes 主要是媒合 需要協助的視障者 與 願意提供協助的人 ,不過目前只有iOS版呢。 介面設計得很簡單,只有兩個頁面。 資料頁面 設定頁面 你不用讓App在背景執行也可以收到系統的來電,通知你有人需要你的幫忙。 也不用擔心睡覺的時候被打擾,系統自動設定在你的時區內,只有 7:00 到 22:00會接到來電。 不過現在在系統裡的供給遠多於需求,所以我使用一年多裡也只有響過 7 次呀 ~ 還有個有趣的設計是 獎勵機制 ,讓你做某些事情之後得到加分,然後就會爬上一個又一個的等級,像我現在就是一個Promising Helper。 包含一開始會希望你分享、按讚看影片等、每一次給予幫助甚至是來不及接卻曾嘗試接電話時,也有加分唷 ~ 而這個分數也只有你才看得見,畢竟這是讓你在助人的時候,有其他方面的微小成就感。💪💪 雖然我的語言設定成英文與中文,但目前還沒有接過講中文的人呢。 其實一開始也是覺得,我可以助人順便練習英文溝通,也是不錯的選擇,但系統來電機率真的是很小...所以我也沒什麼機會截到當下或是來電的圖呀~ 不過也讓我對每次來電都很積極,也更是要分享! 總之,不妨一試!🙋

歐歐歐洲的 羅馬

我們拖著一箱箱諾大的旅行箱在菲屋米奇諾機場內走著,所有看板的字瞬間對我們來說毫無意義,只能把他們當作是圖案一般。 還好,散佈世界各地的中國人讓機場不得不在指示牌上加上簡體中文。 來到義大利之前,我們查了好多好多資訊,也知道這是個略以扒手文明的國家,出發之前特地買了防偷的腰包。 也知道在機場看似出於好意要幫你拿行李的人,會在抵達目的地之後向你索取費用,卻完全不會事先告知你。 要從機場到羅馬市中心的特米尼車站,有三種方法:搭李奧納多特快車、市區公車或是地鐵。 我們本來要搭特快車的,但是賣票的窗口小姐熱心的提供了我們第四種選擇 -- 私人司機。 直接把我們一群人加上大包小包的行李一次載到hostel門口,多棒阿! 在臺灣,幾乎沒有什麼情況需要說英文,英文學了這麼久,遇到hostel的工作人員,反而完全不知道怎麼主動開口,但我相信往後的日子會讓我克服掉這個困難。 第一天的晚上,我們也只是隨意的到處走走晃晃。