我經(jīng)常遇到這樣的場景:老師,我有python or java基礎(chǔ),但還是不知道怎么寫代碼?老師,我有代碼基礎(chǔ),簡單的不用學(xué),我想學(xué)高級的。老師,我有編程基礎(chǔ),但是我看不懂代碼。。。。。。諸如此類的問題,我想大家也一定有這些內(nèi)心的OS
為鄂溫克等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及鄂溫克網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)、鄂溫克網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
面對這樣的場景,這樣的問題,我也問了不少童鞋,得到的答案其實聽悲哀的。莫過于說些代碼太難了,不會不懂;這個代碼寫的不詳細導(dǎo)致我看不懂;我有編程基礎(chǔ)的,是你寫的代碼太爛了。。。。。諸如此類把問題全部歸于他因的。。。可悲之處明理之人應(yīng)該懂的了。。。。
好了,言歸正傳吧,就類似于這樣的問題我這里統(tǒng)一說說我的想法和學(xué)習(xí)技巧吧,有不對的地方請多多包涵,我也是low逼之人,所以難免也有說的不對不妥的地方,喜歡贊之、轉(zhuǎn)之,不喜歡笑之、棄之即可。
1、學(xué)習(xí)自動化測試,或者說些代碼,核心是學(xué)習(xí)思想,實現(xiàn)一個框架或功能的思想,沒有這個思想你就算會77種編程語言都沒卵用。那這里說的思想是什么呢?舉個栗子,你想完成一個從excel讀取用戶名和密碼并進行登錄的case,你要怎么設(shè)計,這就是思路。
大部分我見的童鞋包括我?guī)У膶W(xué)員,一上來就是寫代碼,其實這是最忌諱的,構(gòu)思邏輯、代碼結(jié)構(gòu)才是第一步,最后一步才是寫代碼,本末倒置,你說能寫的出來嗎?
2、所謂我有編碼基礎(chǔ),在我碰到的大部分人中,可以解讀為我學(xué)會編程,但現(xiàn)在忘了,我會hello world,這個不算有基礎(chǔ),撐死算有編碼的概念而已。這也就是你為啥寫不出來,看不懂的最根本原因。
上面指出了大家的問題,那么接下來就I看看應(yīng)對方法。這里我特別想多說一句:能真誠的給你指出問題的人值得感恩(雖然刺耳),多去提升自己的不足少去抱怨別人的不好是使你成為大神最快的捷徑。
學(xué)習(xí)自動化測試或編程基本的路徑:
第一條:認知(包括概念,意義等)>熟悉某一門編程語言(python or java)>從簡單固定的例子開始不斷練習(xí)(跑起來最重要,理解最不重要)>練習(xí)中培養(yǎng)自己解決問題的思路(理解的過程)>組織更復(fù)雜的框架>不斷總結(jié)
第二條:模仿>跑起來>理解>轉(zhuǎn)換為自己的
1、自動化測試的認知我就不多說了,在我的新書《小強軟件測試瘋狂講義》中已經(jīng)詳細說過了
2、熟悉一門編程語言,注意我的用詞是熟悉,不是知道,不是了解,不是會hello world,而是你可以熟練的隨便寫一個簡單的demo出來,掌握了一般的編程、調(diào)試方法。至于大家糾結(jié)的學(xué)python還是java,沒所謂的,都可以,你喜歡哪個就學(xué)哪個,有java基礎(chǔ)的就學(xué)java,沒有的學(xué)python入門會快點。編程語言這個東西本質(zhì)都一樣,只是語法有差異,思想都想通的。
3、不要看不上簡單的例子,有多少人口口聲聲說的我有代碼基礎(chǔ),結(jié)果卻學(xué)的一塌涂地。。。。用個詞語形容:眼高手低。學(xué)代碼就要先模仿,讓代碼跑起來,然后再去理解。很多童鞋一上來就要理解理解,為什么為什么,代碼都沒跑起來理解各毛線啊,為什么個p?。╯orry,情不自禁的爆粗口了,哈哈,原諒我的任性)
這和你學(xué)開車一樣,模仿,練習(xí),慢慢的明白汽車的各個原理,加什么油,為什么后排中間有突起啥的了。我經(jīng)常和我的學(xué)員說,學(xué)習(xí)最忌諱的是開始就陷入細節(jié),一味追求理解。因為很多所謂的理解是需要你有足夠的知識、閱歷和經(jīng)歷沉淀才能做到的!
4、回到上面問的那個登陸的問題,我們就說說核心的思想。拿到這個問題不是去實現(xiàn)寫代碼,而是去想實現(xiàn)他的思路和構(gòu)成,這個過程不涉及具體的細節(jié),不考慮是否能真的實現(xiàn)。我們來看下這個過程:
a、拆分問題。本題可拆分為python讀取excel(還要考慮excel怎么設(shè)計更方便讀?。⒆x取出來的數(shù)據(jù)如何存儲、存儲之后的數(shù)據(jù)如何放到對應(yīng)的用戶名和密碼上
b、逐步實現(xiàn)。以selenium為例,先把用戶名和密碼元素識別出來且寫死數(shù)據(jù),至少保證代碼可以運行起來。不要上來就想我用戶名要是好幾個怎么實現(xiàn)呀。一個寫死的用戶名你都沒跑起來代碼想那么多干毛線啊。
c、實現(xiàn)python讀取excel數(shù)據(jù)并保存
d、用讀取保存的數(shù)據(jù)去替換對應(yīng)的用戶名和密碼
e、完善代碼加入異常處理機制。不要一開始就想報錯了怎么辦,用戶名密碼不對了怎么辦,測試的基本思想怎么關(guān)鍵時間都丟失了呢。。。做功能測試我們都知道先正,后反啊,怎么到了寫代碼的時候就忘記了呢。
f、運行好了,理解了,可以慢慢在優(yōu)化,比如加入unittest、htmlreport等
在整個上述的過程中,很多代碼都是固定的,比如unittest的用法格式就是固定的,先記住怎么用,用起來再說。很多人老學(xué)別人去看源碼,你的有一定基礎(chǔ)了才行啊,不然看源碼簡直是雪上加霜。
最后,學(xué)習(xí)是一個過程,是一個步驟,和生成一輛汽車一樣,不要跳著學(xué)習(xí),能跳級的童鞋畢竟是少數(shù),踏踏實實的一步步學(xué),越往后你會發(fā)現(xiàn)效率越高,有時候我們以為的我們以為真的不是我們以為的那樣。。。。。。就和你開車,你的先讓車跑起來才能想怎么變道安全,怎么超車安全,怎么側(cè)方停車啊。。。。
PS:有些東西文字不好表達,還的靠大家意會。。。。。。。幸苦大家了