? ? ? ? 入行測試已五年有余掂摔,前三年干的是測試用例翻譯為自動化用例腳本缺菌,分析失敗用例找BUG。之后至今做的手工測試盒让,空閑之余自己研究搭建接口測試框架。接下來聊聊每段經(jīng)歷自己的一些體驗司蔬。
初入自動化測試
? ? ? ?要說為何最初選擇了自動化測試邑茄,因為當時畢業(yè)對自己編程能力不夠自信,沒選擇干開發(fā)俊啼,就選擇了測試肺缕。再來看要用到語言寫腳本,也不算荒廢編程(現(xiàn)在看來授帕,是荒廢了)同木,所以就這么入坑了。
? ? ? ?說一下項目背景跛十,是通信行業(yè)的基站系統(tǒng)彤路,有硬件和軟件測試,我做的是外包出來的軟件自動化測試芥映。項目的自動化測試框架都是現(xiàn)成的洲尊,用的TCL語言(不通用),要做的也就是不斷的往里面加用例腳本奈偏。出現(xiàn)公共的可復用的業(yè)務(wù)提取出來實現(xiàn)公共函數(shù)用于單個用例中去調(diào)用坞嘀。基礎(chǔ)配置文件惊来,數(shù)據(jù)文件丽涩,業(yè)務(wù)代碼是分類規(guī)劃的。
? ? ? ?一個用例的流程:登錄--->實現(xiàn)業(yè)務(wù)預置條件--->業(yè)務(wù)流程執(zhí)行及檢查點設(shè)置--->恢復環(huán)境(增加的要刪除裁蚁,恢復初始設(shè)置)--->退出登錄矢渊。
? ? ? ? 完成的用例會將用例編號寫入文件,再由工具來調(diào)用執(zhí)行枉证,都是晚上跑昆淡,白天分析執(zhí)行結(jié)果。任務(wù)的調(diào)起還有專職人員來做刽严。
? ? ? ? 工作的績效考核主要看腳本數(shù)量,提BUG數(shù)量避凝。每天疲于應對KPI舞萄,每天都處于一種忙碌的狀態(tài),而這樣工作的意義在哪里管削,沒有仔細思考過倒脓。后來經(jīng)歷了一次裁人風波,我因為工作時間久點含思,業(yè)務(wù)知識熟悉崎弃,而留了下來甘晤。
? ? ? ? ?之后有了個新項目,是用python語言實現(xiàn)的測試框架饲做,同樣也是框架現(xiàn)成线婚,只需要會使用。學習了一下python的基礎(chǔ)語法盆均,就開始上手了∪祝現(xiàn)在想來遺憾的是,當時沒有意識到應該好好研究一下這個框架底層的東西(這個項目不像TCL語言的那個底層代碼不可見)泪姨。
接口測試
? ? ? ?做了三年的用例翻譯后游沿,因個人原因離開了這份工作,換了個城市肮砾,也換了測試的行業(yè)方向诀黍。測過了WEB網(wǎng)站、APP仗处、H5頁面眯勾、小程序,這期間也接觸了接口測試疆柔。
? ? ? ?最初了解的接口測試是報錯時瀏覽器上按F12咒精,查看是否是接口返回的報錯,來判斷是前端還是后端的問題旷档。使用抓包工具抓取消息后模叙,修改請求參數(shù)后發(fā)送。
? ? ? ?公司業(yè)務(wù)提供三方接口(支持JAVA鞋屈、PHP)供客戶使用范咨,所以接觸了在IDEA(java編程語言開發(fā)的集成環(huán)境)中配置SDK包,在開發(fā)提供的測試DEMO中去測試接口厂庇。為什么不使用PostMan或Jemter測試工具呢渠啊,是因為它復雜的簽名驗證算法,在接口測試工具中難得搞权旷。之后因為簽名難替蛉,校驗難,新功能客戶要手動更新SDK包等問題拄氯,開發(fā)了新的接口躲查,可以直接用http發(fā)起請求,易于自行實現(xiàn)簽名校驗和接口跨平臺化译柏。簽名簡化后就使用了接口測試工具來測試镣煮。
? ? ? ?在本地部署(不想數(shù)據(jù)保存在公司方的服務(wù)器上,就把項目部署到客戶方的服務(wù)器上)項目中因為簽名驗證算法簡單鄙麦,所以有使用PostMan或Jemter來測試典唇。
? ? ? ?在使用工具來做接口測試的過程中镊折,有感覺到重復勞動,所以萌生了做成自動化的接口測試介衔。在網(wǎng)上搜索了一番后恨胚,我決定用python+requests+unittest來做。
簡要介紹一下目錄結(jié)構(gòu)夜牡,之后另寫一篇來詳細介紹具體實現(xiàn)与纽。
Common---放可以提取出來共用的
Config---配置文件
Data---構(gòu)造測試數(shù)據(jù)的文件
Report---調(diào)哪些測試用例執(zhí)行,生成測試報告
Testcase---測試用例塘装,按模塊劃分
生成的測試報告展示:
報告內(nèi)容展示: