1、安裝Maven依賴后,在執行testng用例時一直報錯誤,在maven的本地倉庫路徑下的org目錄,沒有aspectj后面一串的內容,不確定是否是依賴沒有下載完畢,使用的遠程電腦辦公,網絡非常慢
解決方法:
1)發現是在pom.xml中配置的Allure報告的時候配置了這個路徑,應該是少安裝了東西,暫時先去掉就可以了
2)后面發現是由於網絡原因,本地倉庫沒有下載下來
2、腳本發現出現了一個報錯:Element is not clickable at point (1648, 30). Other element would receive the click
分析原因,首先肯定不是因為頁面元素不存在而無法點擊,實際上這個頁面元素是存在的,而是被另外一個彈層擋住了。
解決方法:
1)用鍵盤sendKeys(Keys.ENTER)代替click,發現仍報錯: unknown error: cannot focus element,是因為選擇的點擊的元素不是input類型的,無法聚焦到元素,此辦法行不通
2)封裝的元素是用的智能等待,直接不用,用硬性等等Thread.sleep(3000),問題解決了
3、在進行接口自動化,執行登錄接口,發現只執行了父類方法中的初始化和結束,沒有調用登錄接口
解決方法:代碼問題,在解析excel數據時,比較用的是String類型, 在定義變量里用的int類型, 還有就是識別@excel (name = ”“) 名稱與excel用例的標題的名稱不匹配,導致識別不到參數,修改就好了
4、接口自動化時,進行https請求時,發生報錯
查了問題發現是:所請求的網站域名和服務器上的證書中的域名不符,導致請求方域名不匹配的異常
解決辦法:
1)服務器導入證書
把網址的證書導出放到jre目錄下C:\Program Files\Java\jre1.8.0_65\lib\security,打開cmd
a keytool -importcert -trustcacerts -alias glfeed -file glfeed.cer -keystore -trustcacerts (glfeed.cer 證明名稱)
b 輸入密鑰庫口令:changeit
c 提示:“是否信任此證書? [否]:” ,那么請輸入"y", 解決
2)代碼解決忽略證書問題
5、接口自動化時,解析excel用例斷言時,發生java.net.SocketException: Software caused connection abort: socket write error錯誤,發現表格在回寫斷言結果時,回寫內容為空
解決辦法:
發現是期望斷言結果中json格式的參數少了一個"號引起的,加上后問題解決
6、執行接口自動化https請求時,發生錯誤
解決辦法:
升級jdk的版本,具體參考文章 https://blog.csdn.net/kevin_mails/article/details/82143490
7、在執行接口自動化時,報錯信息如下“com.alibaba.fastjson.JSONException: unclosed string ” ,查了下說是json轉換時出錯,當時檢查了很久,不知道是哪里寫錯,后面發給別人看,一眼看出是少了個“,真是當局者迷呀
解決辦法:
修改json格式路徑
8、在執行get請求時,想請求一個異常的用例,即本來URL是不帶參數的,故意在url后加上參數,查看請求結果,於是在代碼中直接
if ("get".equalsIgnoreCase(api.getApiReqMethod())) {
if (cases.getCaseDes().contains("URL帶參數請求")) {
url = api.getApiUrl() + "?" + "service_button =1";
}然后發生了如下錯誤,度娘查了說是 地址中涉及了特殊字符,如‘?’‘&’等。
解決方案:
原來是"service_button =1"; 等號前面多了一個空格,去掉空格后問題解決
網上查了很多是說用以下的方式解決
1、必須采用%0xXX方式來替代特殊字符
2、先把String轉成URL,再能過URL生成URI的方法來解決問題
但是方案二的解決方案不適用於我的項目,所以采用了方案一,試了下,打印出來的url直接以%3F,沒法請求
9、由於公司接口設置有限制,即執行20次時會判定頻繁操作,在實際項目時,一個接口有多個用例,且一個用例要執行三次,所有有容易就超過了20次,導致接口失敗,報頻繁操作的錯誤
解決辦法: 在每次調用接口前,設置等待時間