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