4月初,班主任的某次周會議上,華華關切的問了一下:最近班主任們有什么難題嗎?就是花費了你們大部分時間的工作!我們Python天團可以幫你們解決問題。
班主任大主管星星說:有。目前有一個大難題。我們每天都會對進群的學員登記他的真實姓名,聯系方式,地址,目前薪資,期望薪資以及為什么會選擇檸檬班~然后對於所有學生的繳費情況都會去騰訊進行查驗,確保學生有上課的權限,並且每次會提前提醒分期的同學按時繳納分期費用,防止逾期而沒有上課的權限。
華華:這不是so easy的事情嗎?
星星:不easy,首先學生並不是一天來的,而是每天不同的班級都會有不同的學員入學,那么就要分類整理。第二:每個學生的繳費信息方式不一樣,有的是分期,有的是全款,有的是微信賬號購買課程,所以為了把入群的qq和這些學費信息核對起來,真的是非常的困難!
華華:這好辦,我幫你搞定(當然那是不可能的),會后找到了Python天團的主管:小簡大佬。小簡大佬,班主任團隊最近遇到了一個比較繁瑣的問題,就是統計學生的信息比較費時,可以幫忙用自動化搞定嗎?
簡佬(小簡大佬的簡稱):好的呀,有需求嗎?我們團隊的可優和雨澤可以幫忙做這個事情,你把需求搞定,我們最遲一周內交付,畢竟我們還有自動化測試和測試開發以及公開課的任務在身。 有Python天團的強有力支撐,那么就可以開始行動了!
PART 1:整理需求
於是:華華聯合星星,疏導了班主任的工作流程以及數據來源,整理出了一份需求。(各位親愛的VIP學員們,你們的服務都來自於班主任的不辭勞苦!)
關於學員信息統計:
包含了如下圖所示的一些信息
其中QQ來自QQ群,微信訂單來自檸檬班內部的CRM系統,剩余的信息來自檸檬班的學員信息管理后台(由學員在檸檬班提供的表單上自行填寫),經過幾輪分析,確定數據來自這3個不同的地方。
關於學生繳費信息統計:(這關系到學員是否有上課權限,是否會錯過上課時間,非常重要!)
但是這個信息會有2個問題: 1)如果學生是QQ報名的,那么可以直接根據QQ去統計信息。
2)如果學生是微信報名的,那么需要根據加入班級群的QQ去CRM系統里面找到對應的微信號,然后進行QQ微信匹配后再去騰訊課堂查詢,比如說Python17群學員的QQ是:1248***816(保護學生隱私,匿了中間三位數),是通過微信報名的,那么在CRM系統里面的微信賬號是:144115213097282684,我們在騰訊課堂后台只能通過這個微信號才能唯一查詢到支付信息,如下所示:
3)如果學生是分期的,那么還要點擊到分期的詳情頁去查看,分期的支付狀態並登記好之后幾期分期的支付時間,好定期對學員進行提醒,以免逾期。比如說Python17期某位學員的QQ是:792***306,那么查詢到分期訂單如下所示:
我們需要點擊“分期明細”,進入到分期的詳情頁里面去,才能看到學生的明確支付信息以及每一期的最后支付時間,如下所示:
PART 2:編寫腳本
需求整理完畢后,圖文並茂的交給了簡佬,當然part1部分的是簡單的描述,盡量讓大家可以看的明白點,比較復雜的就不寫出來了! 簡佬就開始分發任務:可優大佬負責學生繳費信息的統計腳本,雨澤大佬負責學員信息統計腳本,至於具體的實現過程,當然要跟大家分享一下!由華華來進行文字整理,因為華華在這個過程中充當了班主任和Python天團的橋梁和需求整理者。
關於學員信息統計的腳本實現方式:
1:首先從對應班集體的QQ群里導出學員的Q信息 2:然后從檸檬班內部的CRM系統里面導出學員的訂單信息 3:兩部分信息都保存至xlsx的文件里面,然后利用Python的openpyxl第三方庫對兩份數據進行比對,對學員是微信報名的信息與QQ進行匹配,最后完成的第一步效果如下所示:
4:然后根據學員的QQ信息,利用Python的Python-mysql-connector第三方庫進行數據庫查詢,獲取到學員的詳細信息,如下所示:

腳本的話~~也截圖小小的看看,部分代碼,並不完整哦!學完檸檬班的Python自動化,你也可以!


關於學員繳費信息統計的腳本實現方式:
1:利用學生信息統計的結果進行查詢,如果QQ查詢不到,就用QQ對應的微信號去進行查詢
2:如果是全款,那么就直接登記信息,如果是分期,就登記分期鏈接,后期再單獨進行分期詳細信息的統計與登記。
3:以上兩步是非常清晰的,實現方式無外乎就是web頁面元素的定位,方式有多種,xpath css或id,但是這個腳本,有兩個亮點要跟大家分享下,希望大家以后遇到這個問題也可以用類似的方法去處理。
亮點一:查詢之前先固定查詢的條件
這里有兩個顯式的條件需要固定,一個是時間,我們只查詢2019年1月1號開始的訂單,那么這里就設計到日歷的固定於選擇:
頁面的HTML源碼如下所示:
我們可優大佬實現的方式是:
另外一個需要固定的條件是:課程包名稱,這個是非selected控件,經過觀察是支持模糊查詢,並且需要從模糊查詢的結果里面選擇對應的下拉元素才可以生效的! 頁面的HTML源碼如下所示:
我們可優大佬實現的步驟是:先輸入查詢的課程條件(盡量可以唯一確定到唯一一個元素,然后選擇下拉框的第一個元素,第0個元素顯示的是“”全部“”),比如我們輸入的是:python全棧自動化測試工程師第7-19期,那么下拉框就會顯示可以選擇的課程包名稱,實現代碼如下:
效果如下所示:
我們通過代碼選擇下拉列表的第一個元素,然后神奇的事情就發生啦!后面出現了隱藏元素,班級!
如下所示:
那么接下來就是選擇班級,但是我們的查詢班級下拉框也是非selected的,而且不支持輸入只能從下拉元素中選擇,頁面的HTML源碼如下所示:
我們實現的代碼如下所示:
至此查詢的難題已經全部實現,除了這里有點浪費時間,其他的都非常簡單!
亮點二:利用正則匹配分期的數據
學習自動化,不僅僅要學習Python編程能力還需要學習其他的知識,比如說正則!而且這些在檸檬班自動化的授課里面全都有!這里截取部分代碼,僅供參閱!
這個過程從構思到實現,都是在工作日時間實現的,5月1號,此項目正式上線!並且已經部署到班主任專用的電腦上的jenkins上!這樣可以定時的去跑任務啦!班主任也可以開始利用Python來武裝自己了!這個年代,不學點自動化,都不好意思說自己是Python班的班主任啦!
如果最近你發現班主任們變美了,心情也美美噠,每天跟你說話都是元氣滿滿的,那么一定是因為Python給他們工作減負,他們多了時間化妝和休息!
有興趣的同學可以多多關注檸檬班的Python自動化課程,可以找專業的Python自動化輔導員來領取專業的學習資料! 檸檬班等你很久了,特意為你准備了一波自動化測試秘籍,助你突破薪資技能瓶頸!
包括 Jmeter、Python編程、Selenium、unittest+Http技術+ddt;appium自動化;還有自動化面試題,以及項目案例分享。有興趣的可以加我哦,免費送!