1. 程式人生 > >介面測試-工作心得記錄三(呼叫微信介面傳送監控訊息)

介面測試-工作心得記錄三(呼叫微信介面傳送監控訊息)

背景:前幾天在論壇看到有人分享一個呼叫企業微信介面傳送監控訊息的帖子(最後會附上鍊接),看完之後覺得特別贊,原因因為之前我一直當介面報錯時傳送郵件和簡訊。用了一段時間覺得,郵件這個非常雞肋,基本不看,煩的很。一直都想替換掉但是苦於沒有更好的,本來以為會很複雜回來看了一下企業微信的api文件,寫的真的是不錯,上手速度很快,用起來很方便。

大概說一下企業微信的註冊流程:

非常簡單登入自己的微信建立一個企業(小規模使用不需要實名),建立成功後就能找到corpid和corpsecret的值(不用想的那麼複雜就是為了獲取access_token)建立一個自己的應用如圖:


這裡我要說一下剛開始我以為是新建一個微信群來發送我還調式了半天,後來發現不是。

整個呼叫微信傳送訊息的思路非常簡單就兩步,第一步呼叫gettoken介面來獲取access_token。第二步用獲取的accesstoken和其他要求的引數後呼叫message/send介面即可。

思路很簡單了,但是呢第一步呼叫gettoken介面來獲取微信設定一個呼叫頻率下面就是api文件內容,如圖:


這就出現了兩個問題,第一重新獲取邏輯?第二時間和有效的accesstoken存在哪裡?

老實說這個快取機制我剛開始都不知道存在哪裡,存在變數裡面也不行真的一臉懵逼,後來就問了一個rd,他給的思路蠻好的,很簡單寫在配置檔案中,用配製檔案的時間戳來判斷和請求的時間進行判斷當配置檔案的時間戳大於請求時間時就取配置檔案的accesstoken,反之就請求gettoken介面並更新配置檔案,簡單好用。並且python有ConfigParser的

第三庫寫起來非常方便。直接上我寫配置檔案的程式碼,如圖:


上面這個方法就是複寫配置檔案,很簡單首先例項化ConfigParser類,新增標籤,呼叫set方法設定內容,最後write進去,網上很多ConfigParser庫的使用的文章不會的可以模仿練兩個就會了。下面是讀的方法:


和寫的思路一樣,這裡面有一個小坑,當然返回列表肯定沒有問題,從配置檔案讀取的時間戳是string型別,用time函式呼叫返回的是float型別,不同型別肯定比較不了,後來我呢先轉成int,就是int(config.items("weixin")[0][1]),這就會有一個錯誤,如圖:


整型無法強轉浮點型資料。所以呢就用float()轉換完成,再用round()四捨五入下就ok了。

下面就是請求gettoken介面的整體程式碼,如圖:


思路我上面寫的那些,我就2個點想說的,第一個就是,獲取時間戳這個,這個我不記得寫沒寫過,既然想到了就寫一下吧。獲取本地時間,然後轉成陣列在轉成時間戳,程式碼如下:


第二個就是圖中表2的,為什麼要減1000s,原因是因為我覺得卡邊界值上有可能會造成accesstoken失效的風險,造成一些不必要的麻煩,不如干脆寬泛一點。

獲取accesstoken下面就根據api文件請求send介面就可以傳送訊息了,實測非常好用,目前看效果不錯,下面就是效果:


思路來源:https://testerhome.com/topics/5598