看板 Soft_Job 關於我們 聯絡資訊
原文述刪 前陣子參加某金控的分享會後覺得有點空虛 加上最近在做內部教育訓練,整理了以前做的一些在自動化測試上的事 少少的經驗 分享給版上QA大大們 希望多多交流 敝公司一樣是用JIRA做專案管理(省略 之前用的測試框架是一樣使用Robot Framework 老實說,對一個會寫程式的人來說,Robot Framework並沒有很有彈性 所以最近在新案子上嘗試直接使用Pytest + Python + Selenium (RF的底層也是Python) (新案子不是只要把測試案例轉成Autotest script裡就好,因為很大, 所以需要更多的設計,這點我還在頭痛) 很多東西都要自己刻,不像RF幫你做好 ------------------------------------- 從最簡單的Web Locator說起 如果你用Locator裡有文字,你要怎麼設計? 如果PM改了一個字,你的測試腳本會不會就此失敗?然後要花很多時間Maintain 所以後來弄了一個演算法,直接在Locator裡嵌入i18n,減少維護的成本 ------------------------------------- 隨著測試腳本的擴大,就必須開始使用一些Design Pattern讓程式好維護好擴充 Page Object Pattern是不管你看任何書任何資料都會寫的 讓測試邏輯 頁 Web Locator分離的一種概念 不會讓你把所有Code寫在Main裡 ------------------------------------- 接著一些維護的功 如果在開發階段,DB一直清怎麼辦?你要怎麼辦? 如果你的商業邏輯有些是會有「消耗」的概念,你要怎麼讓每次測試的結果都一樣? 如果你的商業邏輯有碰到信件,信件裡藏有OTP或是Secrect Info你要怎麼取得? 以前是把信送到一個叫Yopmail的disposal信箱裡,但是後來有該死的reCaptcha 就不能自動了 後來是把信指到Gmail去,然後用Gmail API把信的html拉出來,再做字串處理 當然你的測試Code也要支援不同環境 -------------------------------------- 為了要更自動,所以整進了CI 所以你的瀏覽器要支援headless 因為測試案例很多,要parallel的跑測試 接著簡單的包進Docker裡 整進CI (這裡真的只會基本的 未來有時間,還希望可以支援多瀏覽器 多OS 最後把測試結果是用Email TestRail還是其他通訊軟體 發給大家 --------------------------------------- 以上就是目前做過的一些事情 歡迎版上的QA大大分享和指教 有興趣的話也歡迎站內信 敝公司在作Insurance X Technology 公司QA缺人啊 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.136.142 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1607147759.A.96D.html
joel913: 好文,推+112/05 15:06
waynesmlie: 我看得霧煞煞 我的原文樓主QQ 看來我真的不適合12/05 15:31
lee457088: 好聞推12/05 16:34
taurus5650: 推12/05 17:02
※ 編輯: andrew771027 (36.229.136.142 臺灣), 12/05/2020 17:11:25
superpandal: 自己刻自己用挺好12/05 20:18
joney641119: 完全自己刻太累了,建議改用pytest,比robot有彈性多了12/05 20:29
joney641119: 從單元測試,寫mock/fake,到系統測試全部可以用這套12/05 20:33
joney641119: 平行測試也沒問題,裝個pytest-xdist就行了12/05 20:35
joney641119: 一堆fixture可以用12/05 20:36
joney641119: 而且robot有一個問題比較困擾我,發生問題的時候12/05 20:42
joney641119: 你只知道某個keyword fail,這個keyword詳細做了甚麼12/05 20:43
joney641119: 導致fail,不是太清楚, 常常要用猜的12/05 20:43
joney641119: pytest一目了然12/05 20:44
andrew771027: 補充一下,有用pytest 當框架12/05 21:09
andrew771027: keyword要寫log啊12/05 21:09
joney641119: keyword的參數常常也是一個代號,他是甚麼值呢?12/05 21:16
joney641119: 又要找前面的keyword12/05 21:16
joney641119: log太長,html上面的訊息是...,詳細的值在XML檔案內12/05 21:17
joney641119: 怎麼找呢?寫個parser吧,總之,超麻煩的12/05 21:18
joney641119: 奉勸有用robot的QA同胞們,改用pytest12/05 21:19
joney641119: 而且跟RD討論的時候,常常你這個keyword是在做甚麼? 12/05 21:21
joney641119: 大概好幾個月前寫的,我不可能記得的,要回去查 12/05 21:21
joney641119: 存取list and dictionary方式又是robot自己的格式 12/05 21:23
andrew771027: 同意joney大 12/05 21:37
※ 編輯: andrew771027 (36.229.136.142 臺灣), 12/05/2020 21:53:46 ※ 編輯: andrew771027 (36.229.136.142 臺灣), 12/05/2020 21:54:11 ※ 編輯: andrew771027 (36.229.136.142 臺灣), 12/05/2020 22:06:05 ※ 編輯: andrew771027 (36.229.136.142 臺灣), 12/05/2020 22:32:23
stillcolor: 推!但我目前還是懶人RF在用... 12/07 16:03
stillcolor: 雖然建立測試案例快很多,要規劃維運真的是比較費心思 12/07 16:03
stillcolor: 框架越簡易使用的,彈性相對就越低... 12/07 16:04
mirror0227: 推 12/08 21:43
sabrinaz88: 好文推 01/21 08:58