軟件測試主要會學習那些內容,工作好找嗎
零基礎軟件測試第一階段:測試基礎
測試基礎是軟件測試最最最重要的部分,只要你是做測試,不管是什么測試,測試的基礎、理論知識都是必須學會的最好學到什么程度呢,最好是能夠理解,并能夠用自己的話給復述出來。畢竟面試初級測試的時候,問的問題都是從基礎理論上進行考核的。
零基礎軟件測試第二階段:工具學習
軟件測試的基礎學完了過后,應該學習工具了。其實學工具真的很容易,所以大家不用去糾結工具的選擇。把最基礎的幾個工具學習了就行了,以后用到什么工具就去學什么。
下面幾個必學的工具,不用太精通會用就可以:
1、性能測試工具:loadrunner、jmeter。
2、接口測試工具:postman
3、抓包工具:fiddle
4、數據庫管理工具:Navicat
5、項目/BUG管理工具:禪道、QC
6、搜索工具:百度、谷歌
零基礎軟件測試第三階段:代碼學習
學完了以上兩個部分,已經是一個出色的初級測試工程師水平。
1、自動化方向
代碼已經基本掌握,接下來就要學習各種自動化測試了。
(1)各種單端測試框架:unittest(python)、pytest(python)、JUnit(java)
(2)@WEB自動化測試框架:selenium(適用于java\python\javascript)
(3)APP自動化測試框架:appium(適用于java\python\javascript)
以上內容根據自己學的語言進行選擇;appiunm和selenium根據你參與的項目進行選擇。
2、性能方向
對loadrunner和jmeter的掌握更加的深入。可以手寫腳本、脫離錄制;多線程編程、能夠手寫java或者python、不用工具直接實現壓測;學習linux,畢竟性能總是和服務器打交道的;學習系統(tǒng)架構的相關知識、方便你更容易地分析系統(tǒng)瓶頸。
性能方向的提示更難、因為需要掌握的東西太多。性能測試做深入了,基本上就是架構師的水平臺。
3、安全方向
滲透測試、SQL注入、暴力破解、脫庫等等
零基礎軟件測試第四階段:架構學習
怎么去測試更全面?怎么才能更好地保障項目的質量?在這個階段,應該回頭重新學習一遍測試基礎,這個階段的提高是思想、方法的提高了。上面講的都是教你應該怎么做。在這個階段你要自己去發(fā)現、為什么要那樣做。跨過了這個階段就基本上可以成為專家了。
安卓fishbowl測試的是什么
安卓Fishbowl測試是一種軟件測試方法,用于驗證移動應用的穩(wěn)定性、兼容性和性能。它模擬真實環(huán)境中的用戶行為,包括用戶在不同網絡狀態(tài)下使用應用程序的情況。
Fishbowl測試通過在受控環(huán)境下模擬真實場景,發(fā)現和診斷應用程序中的錯誤和缺陷。
它還可以測試應用程序在不同設備上的兼容性和響應性能力,為開發(fā)人員提供有用的反饋信息,以便進行優(yōu)化和改進。
開源爬蟲框架各有什么優(yōu)缺點
首先爬蟲框架有三種
分布式爬蟲:Nutch
JAVA單機爬蟲:Crawler4j,WebMagic,WebCollector
非JAVA單機爬蟲:scrapy
第一類:分布式爬蟲優(yōu)點:
海量URL管理
網速快
缺點:
Nutch是為搜索引擎設計的爬蟲,大多數用戶是需要一個做精準數據爬取(精抽取)的爬蟲。Nutch運行的一套流程里,有三分之二是為了搜索引擎而設計的。對精抽取沒有太大的意義。
用Nutch做數據抽取,會浪費很多的時間在不必要的計算上。而且如果你試圖通過對Nutch進行二次開發(fā),來使得它適用于精抽取的業(yè)務,基本上就要破壞Nutch的框架,把Nutch改的面目全非。
Nutch依賴hadoop運行,hadoop本身會消耗很多的時間。如果集群機器數量較少,爬取速度反而不如單機爬蟲。
Nutch雖然有一套插件機制,而且作為亮點宣傳。可以看到一些開源的Nutch插件,提供精抽取的功能。但是開發(fā)過Nutch插件的人都知道,Nutch的插件系統(tǒng)有多蹩腳。利用反射的機制來加載和調用插件,使得程序的編寫和調試都變得異常困難,更別說在上面開發(fā)一套復雜的精抽取系統(tǒng)了。
Nutch并沒有為精抽取提供相應的插件掛載點。Nutch的插件有只有五六個掛載點,而這五六個掛載點都是為了搜索引擎服務的,并沒有為精抽取提供掛載點。大多數Nutch的精抽取插件,都是掛載在“頁面解析”(parser)這個掛載點的,這個掛載點其實是為了解析鏈接(為后續(xù)爬取提供URL),以及為搜索引擎提供一些易抽取的網頁信息(網頁的meta信息、text)
用Nutch進行爬蟲的二次開發(fā),爬蟲的編寫和調試所需的時間,往往是單機爬蟲所需的十倍時間不止。了解Nutch源碼的學習成本很高,何況是要讓一個團隊的人都讀懂Nutch源碼。調試過程中會出現除程序本身之外的各種問題(hadoop的問題、hbase的問題)。
Nutch2的版本目前并不適合開發(fā)。官方現在穩(wěn)定的Nutch版本是nutch2.2.1,但是這個版本綁定了gora-0.3。Nutch2.3之前、Nutch2.2.1之后的一個版本,這個版本在官方的SVN中不斷更新。而且非常不穩(wěn)定(一直在修改)。
第二類:JAVA單機爬蟲優(yōu)點:
支持多線程。
支持代理。
能過濾重復URL的。
負責遍歷網站和下載頁面。爬js生成的信息和網頁信息抽取模塊有關,往往需要通過模擬瀏覽器(htmlunit,selenium)來完成。
缺點:設計模式對軟件開發(fā)沒有指導性作用。用設計模式來設計爬蟲,只會使得爬蟲的設計更加臃腫。第三類:非JAVA單機爬蟲優(yōu)點:
先說python爬蟲,python可以用30行代碼,完成JAVA
50行代碼干的任務。python寫代碼的確快,但是在調試代碼的階段,python代碼的調試往往會耗費遠遠多于編碼階段省下的時間。
使用python開發(fā),要保證程序的正確性和穩(wěn)定性,就需要寫更多的測試模塊。當然如果爬取規(guī)模不大、爬取業(yè)務不復雜,使用scrapy這種爬蟲也是蠻不錯的,可以輕松完成爬取任務。
缺點:
bug較多,不穩(wěn)定。
爬蟲可以爬取ajax信息么?
網頁上有一些異步加載的數據,爬取這些數據有兩種方法:使用模擬瀏覽器(問題1中描述過了),或者分析ajax的http請求,自己生成ajax請求的url,獲取返回的數據。如果是自己生成ajax請求,使用開源爬蟲的意義在哪里?其實是要用開源爬蟲的線程池和URL管理功能(比如斷點爬取)。
如果我已經可以生成我所需要的ajax請求(列表),如何用這些爬蟲來對這些請求進行爬取?
爬蟲往往都是設計成廣度遍歷或者深度遍歷的模式,去遍歷靜態(tài)或者動態(tài)頁面。爬取ajax信息屬于deepweb(深網)的范疇,雖然大多數爬蟲都不直接支持。但是也可以通過一些方法來完成。比如WebCollector使用廣度遍歷來遍歷網站。爬蟲的第一輪爬取就是爬取種子集合(seeds)中的所有url。簡單來說,就是將生成的ajax請求作為種子,放入爬蟲。用爬蟲對這些種子,進行深度為1的廣度遍歷(默認就是廣度遍歷)。
爬蟲怎么爬取要登陸的網站?
這些開源爬蟲都支持在爬取時指定cookies,模擬登陸主要是靠cookies。至于cookies怎么獲取,不是爬蟲管的事情。你可以手動獲取、用http請求模擬登陸或者用模擬瀏覽器自動登陸獲取cookie。
爬蟲怎么抽取網頁的信息?
開源爬蟲一般都會集成網頁抽取工具。主要支持兩種規(guī)范:CSSSELECTOR和XPATH。
網頁可以調用爬蟲么?
爬蟲的調用是在Web的服務端調用的,平時怎么用就怎么用,這些爬蟲都可以使用。
爬蟲速度怎么樣?
單機開源爬蟲的速度,基本都可以講本機的網速用到極限。爬蟲的速度慢,往往是因為用戶把線程數開少了、網速慢,或者在數據持久化時,和數據庫的交互速度慢。而這些東西,往往都是用戶的機器和二次開發(fā)的代碼決定的。這些開源爬蟲的速度,都很可以。