問:“你平時工作中,用java多還是用python多”?
答:“都還可以,根據具體的場景選擇不同的語言”。
問:“比如說呢”?
答:“開發自己的測試平台,肯定會選擇java;在centos服務器跑一些腳本,會選擇python或shell;某些壓測場景,追求高並發,可能會選擇go語言”。
問:“我java和python都學了一些基礎知識,不知道該選擇哪種語言”。
答:“可以先選擇一門你相對擅長的語言,先開始用起來”。
這是前兩天,一位身邊的小伙伴和我的對話。
相信有這樣疑問的人不在少數,就是自己到底該選擇python?還是java?作為自己主要的語言,這樣就能專心的將一門語言學好,因為人的精力畢竟是有限的。我先拋出我的觀點和建議:“其實語言是次要的,畢竟都是為測試工作服務,不要讓選擇阻礙了我們前進的腳步。你要做的僅僅是行動起來!就選擇python(其實語言無所謂,我的建議如果沒基礎,就從python開始),先用起來再說。 不要慫,就是干!”
拿我自己的經歷來說,我剛開始工作的頭兩年主要用java做研發,后來轉成測試工程師后,發現有些場景,更適合用python實現,於是開始嘗試寫python。我從來沒有系統的去學習python的基礎知識,就是用到什么不會了就查查資料,慢慢的就大致知道了python咋玩的。所以,編程語言是用起來的,不是學起來的!(這句話略有些偏激,是我個人的想法)。
下面的表格,是我整理的java和python的對比:
| java | python | 備注 | |
| 語言類型 | 編譯型+解釋型語言 | 【編譯型】+ 解釋型語言 | java和python都是高級語言,而計算機是不能識別 高級語言的,所以當他們運行時,會有一個工具將高級語言轉成機器能懂的語言, 編譯型語言:如果在運行前就將程序轉成機器語言,運行時刻直接運行,比如C語言。 解釋型語言:在程序運行時,再去解析程序的含義,然后運行。 |
| 是否開源 | 是 | 是 | |
| 難易程度 | 相對難度大一些 | 相對難度小一些(僅僅是上手快) | python語言簡潔,上手會更快一些 |
| 語言復雜度 | 相對知識體系更復雜,但介紹資料也更多 | 語言比較簡潔,不過官方介紹多為英文 | |
| 運行速度 | 快 | 慢 | java的jre比較強大,另外還引入了JIT編譯器技術,因此執行速度更快 |
| 語言上的特點 | 1. 每行代碼后要加; 用於表示代碼語句結束。 2. 強類型的語言,使用前需要聲明變量類型。
|
1. python語句末尾不需要分號,但是要求強制縮進。 2. 弱類型語言,使用變量時不需要聲明變量 |
|
| 單測框架 | testNg、Junit5 |
pytest、unittest |
|
| web開發能力 | 框架很多,常用的springboot+mybatis |
常用的有Django、Bottle |
|
| 接口自動化 | 一般基於單測框架+網絡請求框架,比如:testng+RestAssured |
跟java設計思路類似,比如:requests網絡庫+pytest |
|
| ui自動化 | 可用Appium |
同樣可用Appium |
我的建議
- 如果你沒有編程基礎,那么不妨就從python着手,開始嘗試寫一些python腳本,可以有針對性的解決一些工作中實際的問題。
- python只是上手比java快一些,但對我們來說,解決問題的實現思路是關鍵,所以java和python難度其實一樣。
- 總之不要將時間浪費在“選擇java或python”,而應該用python(建議)開始行動起來。
- 行動永遠比語言更有效果。
