作者andrew771027 (老柏~)
看板Soft_Job
標題Re: [請益] QA學生實習的問題
時間Sat Dec 5 13:55:52 2020
原文述刪
前陣子參加某金控的分享會後覺得有點空虛
加上最近在做內部教育訓練,整理了以前做的一些在自動化測試上的事
少少的經驗 分享給版上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://webptt.com/m.aspx?n=bbs/Soft_Job/M.1607147759.A.96D.html
1F:推 joel913: 好文,推+112/05 15:06
2F:推 waynesmlie: 我看得霧煞煞 我的原文樓主QQ 看來我真的不適合12/05 15:31
3F:推 lee457088: 好聞推12/05 16:34
4F:推 taurus5650: 推12/05 17:02
※ 編輯: andrew771027 (36.229.136.142 臺灣), 12/05/2020 17:11:25
5F:→ superpandal: 自己刻自己用挺好12/05 20:18
6F:推 joney641119: 完全自己刻太累了,建議改用pytest,比robot有彈性多了12/05 20:29
7F:推 joney641119: 從單元測試,寫mock/fake,到系統測試全部可以用這套12/05 20:33
8F:→ joney641119: 平行測試也沒問題,裝個pytest-xdist就行了12/05 20:35
9F:→ joney641119: 一堆fixture可以用12/05 20:36
10F:推 joney641119: 而且robot有一個問題比較困擾我,發生問題的時候12/05 20:42
11F:→ joney641119: 你只知道某個keyword fail,這個keyword詳細做了甚麼12/05 20:43
12F:→ joney641119: 導致fail,不是太清楚, 常常要用猜的12/05 20:43
13F:→ joney641119: pytest一目了然12/05 20:44
14F:→ andrew771027: 補充一下,有用pytest 當框架12/05 21:09
15F:→ andrew771027: keyword要寫log啊12/05 21:09
16F:推 joney641119: keyword的參數常常也是一個代號,他是甚麼值呢?12/05 21:16
17F:→ joney641119: 又要找前面的keyword12/05 21:16
18F:→ joney641119: log太長,html上面的訊息是...,詳細的值在XML檔案內12/05 21:17
19F:→ joney641119: 怎麼找呢?寫個parser吧,總之,超麻煩的12/05 21:18
20F:→ joney641119: 奉勸有用robot的QA同胞們,改用pytest12/05 21:19
21F:→ joney641119: 而且跟RD討論的時候,常常你這個keyword是在做甚麼? 12/05 21:21
22F:→ joney641119: 大概好幾個月前寫的,我不可能記得的,要回去查 12/05 21:21
23F:→ joney641119: 存取list and dictionary方式又是robot自己的格式 12/05 21:23
24F:→ 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
25F:推 stillcolor: 推!但我目前還是懶人RF在用... 12/07 16:03
26F:→ stillcolor: 雖然建立測試案例快很多,要規劃維運真的是比較費心思 12/07 16:03
27F:→ stillcolor: 框架越簡易使用的,彈性相對就越低... 12/07 16:04
28F:推 mirror0227: 推 12/08 21:43
29F:推 sabrinaz88: 好文推 01/21 08:58