原创 【python】記錄一次python發送json數據到go服務端,服務端解析失敗問題

【python】記錄一次python發送json數據到go服務端,服務端解析失敗問題 背景:在做性能測試時,python把採集到的性能數據通過post回傳到服務端,服務端用go實現,服務端是將接收的json通過json.Unmarshal反

原创 【go】golang中鎖的用法-互斥鎖

鎖 互斥鎖 解釋:互斥鎖,保證同一時刻只有 1 個 goroutine 訪問共享資源,比如多個協程同時修改同一個文件,同一時刻只能同一個協程進行修改 使用方法 // 定義一個互斥鎖 // var 變量名 互斥鎖類型 var guardM

原创 【go】golang中的通道

通道:channel 名詞:在 goroutine 中通信的管道 注意:任何時候,同一時刻只能有一個 goroutine 訪問通道進行發送和獲取數據 通道的順序:遵循先入先出的規則 通道的定義 // 定義一個通道 var 變量名 chan

原创 【go】gorm中去掉默認表名後的s複數形式

【go】gorm中去掉默認表名後的s複數形式 背景 使用gorm時,查詢數據時mysql報錯,顯示錶名不存在,仔細查看,報錯的表名中增加了s,比如實際數據庫表名是:ali_user,報錯信息中顯示錶 ali_users 不存在 原因 gor

原创 【go】go錯誤,panic:assignment to entry in nil map 問題記錄

一個go的map相關的panic錯誤 背景:在獲取多個數據時,從數據庫取到多條數據,需要把多條數據返回給前端,定義一個res返回值,爲map[string]any類型,在賦值後運行發生 panic:assignment to entry i

原创 【python】解決python項目中循環依賴問題-動態引入

解決python項目中循環依賴問題-動態引入 背景:在做客戶端性能測試框架過程中需要從統一入口去調用case,統一入口文件中存在公有方法,於是導致A->B->A的循環引入問題 解決:動態引入需要的包 # 在具體的方法中引入包,不在文件開始的

原创 uiautomator2的安裝與使用

開源項目地址:https://github.com/openatx/uiautomator2 介紹: uiautomator2是做安卓自動化框架,內部封裝了一系列的操作安卓app的方法 原理: python端: 運行腳本,並向移動設備

原创 gin框架中結合cron實現定時任務執行

gin框架中結合cron實現定時任務執行 背景:一個hr管理系統中,需要每日定時處理員工離職操作,需要每天定時執行刪除賬號等操作,在這使用定時任務比較方便,比如每天晚21點執行 實現方式如下: 創建定時任務 # 新建Console包,統

原创 uiautomatou2常用方法

參考地址:https://www.jianshu.com/p/38f48390c538 官方文檔:https://github.com/openatx/uiautomator2

原创 自動化測試 - php調用jenkins-api構建job

背景:前一節搭建jenkins並創建了job任務後,用戶可以在jenkins平臺手動點擊構建來執行pytest自動化任務,想實現一個從web界面去觸發構建jenkins中的job任務,在這選擇使用php來調用jenkins-api去觸發構建

原创 mac電腦系統升級後,php -v 錯誤顯示:icu4c相關錯誤解決辦法(解決:升級php)

mac升級後,[email protected]環境損壞,提示icu4相關錯誤解決辦法 背景:mac電腦在一次升級後,php環境損壞導致php無法使用,提示如下信息: 具體原因:電腦升級後brew損壞,重新執行過brew相關的升級,包括所有軟件包,導致icu4

原创 自動化測試 - mac安裝jenkins並安裝allure插件,構建執行pytest自動化用例併產出allure結果

背景:jenkins + pytest + allure,產出自動化測試結果 步驟如下: 一、mac安裝jenkins 1. 方法一:(不推薦,跳過) 安裝tomcat 下載jenkins並放到tomcat的www目錄 2. 方法二:b

原创 php優化 - 防止跨域攻擊

php優化 - 防止跨域攻擊 解決方案: 驗證 HTTP Referer 字段 服務端生成token,下發到客戶端,客戶端提交後並進行驗證 http的header頭自定義屬性,每次驗證header頭中的自定義的屬性值

原创 數據庫 - db和redis數據一致性問題

數據庫 - db和redis數據一致性問題 直接說解決辦法: 查詢數據操作: 查詢緩存,如果命中,直接返回;如果沒有命中,查詢數據庫,再寫入緩存 更新數據操作: 直接更新db數據庫 然後刪除緩存 刪除數據操作: 先刪除

原创 協議 - tcp和udp的區別

協議 - tcp和udp的區別 TCP/IP協議: 是一個協議簇。裏面包括很多協議的,UDP只是其中的一個, 之所以命名爲TCP/IP協議,因爲TCP、IP協議是兩個很重要的協議,就用他兩命名了。 TCP協議: 可靠的面向連接的協議,