測試主要內(nèi)容

1.計算機歷史:四個階段

2. 操作系統(tǒng):

????????????1.移動端系統(tǒng):android和ios

? ? ? ? ? ? ?2.pc端:Windows linux,macOS,Unix3 Linux

1.Linux分類:Ubuntu ,centos,redhat

2 .虛擬機安裝

3. 虛擬機的創(chuàng)建

4.Linux命令

1.目錄切換

切換到根目錄 cd /? ?

切換到上一級目錄 cd../

切換到用戶主目錄 cd ~

切換到指定目錄 cd/usr

切換為超級用戶 su root

2.目錄

創(chuàng)建目錄:mkdir 目錄名稱

刪除目錄? rm? -rf ? 目錄名稱

移動目錄? mv? -r 被移動的目錄 ? 目標位置(想要移動到哪里)

復制目錄 cp -r被復制目錄 ? 目標位置目錄

查看目錄 ls ,ls -a,ls-l,(ll)

修改目錄名稱 mv 舊名字? 新名字

查找目錄 find? 目錄,find /-name 目錄

1 ssh安裝

2 jdk

3 Mysql

4 tomcat安裝,解壓? 開放端口

5 jenkins 持續(xù)化繼承工具

shell腳本

1.變量

定義變量:變量名=值

輸出:echo

雙引號:遇到$輸出變量值,但是被\處理為字符串

單引號:遇到$默認字符串

linux用反單引號`包裹

2.腳本輸出當前目錄

#!/bin/bash

dir=`pwd`

echo $dir

3 輸入,輸出,調(diào)用

echo

read

./sh

4 參數(shù)的傳遞格式:sh? a.sh 參數(shù)列表

$1:接收第一個參數(shù)~~$n

$n: 文件名稱

$@: 所有參數(shù) s

$#: 參數(shù)個數(shù)? $0

5 運算符

1邏輯

-a

-o

!

2 比較

1.數(shù)字

-eq

-ne

-gt

-lt

-le

2 字符串

==

!=

6.if

1.單條件語句

if [條件]

then

操作

else

操作語句

fi

2.多條件語句

if[條件]

then

語句

.

.

.

elif[ 條件 ]

then

語句

.

.

.

else

語句

fi

7.case

case "$變量名"in

"")

語句;;

esac

8 for

for i in 1 2 4

for i in `seq 開始值 間隔 結(jié)束值`

9 while

while [ 條件 ]

do

語句

done

函數(shù) :先定義,在調(diào)用

參數(shù) :返回值 0沒問題? 1有問題

jmeter

一.下載,配置,安裝

二.線程組

1.進程 ,線程,線程組

1.創(chuàng)建 :測試計劃-》添加-》線程-》線程組

2.3個參數(shù) 線程數(shù),準備時長,循環(huán)次數(shù)

三.http請求
指定域名,路徑

四 .查看結(jié)果(監(jiān)聽器)

1.察看結(jié)果樹

2.匯合報告

3.聚合報告

4.后端監(jiān)聽器

5.匯總圖

6.斷言結(jié)果

7.比較斷言可視化器

8.生成概要結(jié)果

9.圖形結(jié)果

五.事務控制器

事務控制器會生產(chǎn)一個額外的采樣器,用來統(tǒng)計該控制器子結(jié)點的所有時間。

在線程組下創(chuàng)建事務控制器

六. 邏輯控制器

七.循環(huán)控制器

八.斷言-檢查點

預先判斷可能會出現(xiàn)的字符串,如果匹配成功斷言成功,否則斷言失敗

????1.響應斷言

????2.json斷言

九.前置處理器和后置處理器

主要是生成請求之前和之后完成工作。

十.定時器

數(shù)組之間的間隔

Jmeter組件參數(shù)化

1.添加——>配置原件——>用戶定義變量

2.定義一個變量并賦值

3.在http請求中調(diào)用變量

4 在http請求電泳第二步中定義變量

5 數(shù)據(jù)庫導出TXT文件

函數(shù)助手

文件中不要出現(xiàn)中文

工具——>函數(shù)助手對話框

Jmeter正則表達式

線程組——>添加——>后置處理器——>正則表達式提取器

七單元——Jmeter腳本錄制

第一行要寫? ? #!/bin/bash

? ? vim 編輯

? ? 執(zhí)行:? ? ? ? ./文件名? ? ? ? sh 文件名

? ? chmod? 777 文件名? ? ? ? 修改文件權(quán)限

定義變量規(guī)則:

變量名=值? ?

shell定義變量的規(guī)則:

1: 等號兩邊不能有空格

2:定義特殊的變量需要用單引號或者雙引號結(jié)合

3:定義linux命令需要用反單引號

區(qū)分:

雙引號中有$變量名,輸出的是變量名對應的變量值

單引號中有$變量名,輸出的是$變量名

命名格式:腳本名稱用 . sh

腳本輸入輸出格式:

輸入語句用:read-p"描述"

Shell輸出值:echo$變量名

參數(shù)傳遞:

$1:接收第一個參數(shù)~~$n

$n: 文件名稱

$@: 所有參數(shù) s

$#: 參數(shù)個數(shù)? $0

比較運算符

1比較運算符(數(shù)字)

-eq 比較是否相等equal

-ne 比較不相等? ? ? ? ? notequal

-gt 比較大于? ? ? ? ? ? greater than

-ge? 比較大于等于? ? ?? greaterequal

-lt? 比較小于? ? ? ? ?? less than

-le? 比較小于等于? ? ?? lessequal

2計較運算符(字符串)

==? 比較是否相等

!=? 比較不相等

加一操作 : ((i++))((i+=1))

加n操作 : s=$(($s+$i))s=$[$s+$i]((s=$s+$i))

3邏輯運算符

-a? 邏輯與? ? -o邏輯或? ? ? !邏輯非

if語句

格式: if [ 條件 ]

? ? ? ? ? ? ?then

? ? ? ? ? ? ?語句

? ? ? ? ? ? ?else

? ? ? ? ? ? ?語句

? ? ? ? ? ? ?fi

多條件:if [ 條件 ]

????????????????then

????????????????語句

????????????????elif [ 條件 ]

????????????????then

????????????????語句

????????????????......

????????????????else

????????????????語句

????????????????fi

case規(guī)則:

格式:case $變量名 in

????????????"值")

????????????語句;;

????????????"值")

????????????語句;;

????????????.....

????????????esac

注意:1、case這第一行以in結(jié)尾

2、值可以是字符串也可以是數(shù)字, 如果數(shù)字范圍[0-9]?

? ??????????3、結(jié)束語句;;

? ??????????4、esac結(jié)束標志

for循環(huán)

格式:for 變量 in? 列表

????????????do

????????????語句

????????????done

數(shù)量過多時不能全列出來時:

? ??for i in `seq 1 2 100`

????do

????echo $i

????done

注意:in之后的 ` 內(nèi) seq mix step max

mix 開始數(shù)據(jù) step:間隔 max 結(jié)束數(shù)據(jù),如果step為1,可以省略,需要用反單引號,seq語句標志

While循環(huán)

格式:while [條 件 ]

? ? ????????????????????do

? ? ????????????????????語句

? ? ????????????????????done

注意:1、 while后面有空格

2、條件兩邊有空格

3、while條件里面存在變量,需要$,而且變量兩邊需要雙引號

4、done是結(jié)束標識

Shell腳本的函數(shù)

? ? 格式:函數(shù)名(){代碼 }

????????????????調(diào)用格式

????????????????函數(shù)名

函數(shù)中的參數(shù)使用$n來接收數(shù)據(jù)

函數(shù)中的返回值:Shell中函數(shù)默認存在返回值查看返回值是$?

如果沒有代碼錯誤默認返回值為0? ? ? ? ? ? 有代碼錯誤返回1

八單元——Jmeter

1、下載、配置、安裝

2、線程組

? ? 1、進程、線程、線程組

? ? 2、創(chuàng)建:測試計劃→添加→線程→線程組

? ? 3、三個參數(shù)

3、Http請求:

????????指定域名、路徑、端口、方法、指定參數(shù)、協(xié)議

4、查看結(jié)果 \ 監(jiān)聽器:

? ? ? ? 1、查看結(jié)果樹 **

? ? ? ? 2、圖形 結(jié)果? **

? ? ? ? 3、聚合報告

? ? ? ? 4、用圖表看結(jié)果? **

5、邏輯控制器

? ? ? ? 1、循環(huán)控制器

? ? ? ? 2、事務控制器(有開始、有結(jié)束)

6、斷言

? ? ? ? 預先判斷可能會出現(xiàn)的字符串。如果匹配成功,斷言成功。否則斷言失敗

7、處理器

前置處理器:前置處理器常常用來修改請求前的設(shè)置

后置處理器:后置處理器則常常用來處理響應后的數(shù)據(jù)

8、定時器

? ? ? ? ? ? 控制兩個請求之間的間隔? ??

9、參數(shù)化

????? ? 1、自定義變量

????????????1、添加→配置元件→用戶定義變量

? ????? ? ? 2、定義一個變量并賦值

????? ? ? ? 3、在http請求中調(diào)用變量$(變量名)

? ????? 2、引用文件中的變量

????? ? ? ? 1、添加→配置元件→CSV DAta Set Config

????? ? ? ? 2、設(shè)置線程組的線程數(shù)

????? ? ? ? 3、文件路徑、編碼、變量、用到文件結(jié)束符(true、false)

????? ? ? ? 4、在http請求中調(diào)用第二步中定義變量

? ????? ? ? 5、數(shù)據(jù)庫導出TXT文件

10、Jmeter 函數(shù)助手? ??

? ? ? ? 1、工具——》函數(shù)助手—>選擇CSVRead——> 文件路徑(必須放在bin里面)列名(0,1,2)——>生成

? ? ? ? 2、把生成的碼復制到HTTP請求界面參數(shù)值

11、腳本錄制

? ? ? ? 1、移動端錄制

? ? ? ? ? ? ? ? 1、保證同一網(wǎng)絡(luò)

? ? ? ? ? ? ? ? 2、jmeter——>測試計劃——>添加非測試元件——>Http服務代理——>

? ? ? ? 2、PC錄制:badboy

九單元——Python的基礎(chǔ)語句和語法

一、下載、安裝、第一個程序

二、變量

1、數(shù)據(jù)類型

? ? ? ? ? ? ? ? Numbers(數(shù)字型):int(整型)、long(長整型)、float(浮點型)、complex(復數(shù)型)

? ? ? ? ? ? ? ? bool(布爾型):true、false

? ? ? ? ? ? ? ? String(字符串)

? ? ? ? ? ? ? ? List(列表型)

? ? ? ? ? ? ? ? Tuple(元祖型)

????????????????Dictionary(字典)

2、標識符組成、命名規(guī)則

? ? ? ? ? ? ? ? 1、什么是標識符?

????????????????????????開發(fā)人員在程序中自定義的一些符號和名稱

????????????????????????標識符是自己定義的,如變量名 、函數(shù)名等

? ? ? ? ? ? ? ? 2、標識符命名規(guī)則

? ? ? ? ? ? ? ? ? ? ? ? 1)只能由字母、下劃線、數(shù)字組成

? ? ? ? ? ? ? ? ? ? ? ? 2)不能以數(shù)字開頭

? ? ? ? ? ? ? ? ? ? ? ? 3)不能使用關(guān)鍵字

? ? ? ? ? ? ? ? ? ? ? ? 4)嚴格區(qū)分大小寫

3、注釋

? ? ? ? ? ? ? ? 分為單行注釋和多行注釋

? ? ? ? ? ? ? ? ????單行注釋:光標移動至注釋行Ctrl+/

? ? ? ? ? ? ? ? ? ? 多行注釋:選中需要注釋內(nèi)容輸入‘’‘

? ? ? ? 4、關(guān)鍵字

三、輸入和輸出

? ? ? ? ? ? ? ? 輸入語句:input()用來獲取控制臺的輸入

? ? ? ? ? ? ? ? 輸出內(nèi)容:print(內(nèi)容)用于打印輸出,最常見的一個函數(shù)

? ??????????????????????objects -- 復數(shù),表示可以一次輸出多個對象。輸出多個對象時,需要用 , 分隔。

? ??????????????????????sep -- 用來間隔多個對象,默認值是一個空格。

? ??????????????????????end -- 用來設(shè)定以什么結(jié)尾。默認值是換行符 \n,我們可以換成其他字符串。

? ??????????????????????file -- 要寫入的文件對象。

四、運算符

1、賦值運算符:

簡單的賦值運算符:=

加法賦值運算符:+=

減法賦值運算符:- =

乘法賦值運算符:*=

除法賦值運算符:/=

取模賦值運算符:%=

冪賦值運算符:**=

取整賦值運算符://=

海象運算符::=在示例中,賦值表達式可以避免調(diào)用len()兩次

? ? ? ? 2、比較運算符

等于:==

不等于:!=

大于:>

小于:<

大于等于:>=

小于等于:<=

3、邏輯運算符

邏輯與:and

邏輯或:or

邏輯非:not

? ? ? ? 4、算數(shù)運算符

:+

:-

?:*

:/

取模:%

冪/次方:**

取整://

五、判斷語句

1、if

? ??????????????????if 要判斷的條件:

? ? ? ? ????????????????????條件成立時,要做的事情

2、if? ? else

? ??????????????????if 要判斷的條件:

? ????????????????????????? 條件成立時,要做的事情

????????????????????else:

????????????????????????? ? 條件不成立時,要做的事情

? ? ? ? 3、if? ? elif? ? else

????????????????????if 要判斷的條件:

? ????????????????????????? 條件成立時,要做的事情

????????????????????elif 要判斷的條件:

????????????????????????? ? 條件成立時,要做的事情

????????????????????else:

????????????????????????? ? 條件不成立時,要做的事情

六、循環(huán)

1、while

????????????????????while 條件:

? ????????????????????????? 條件成立時,要做的事情

????????????????????????? ? 條件成立時,要做的事情

.....

? ? ? ? 2、for

????????????????????for 臨時變量 in 列表或者字符串等可迭代對象:

????????????????????????? ? 循環(huán)滿足條件時執(zhí)行的代碼

十單元——Python的列表

一、格式

變量=[,,,]

、列表的新增

append, extend, insert

?append:直接在列表后方進行拼接添加的是一個元素(列表會占用一個索引位)

extend:直接在后方拼接追加的多個元素(列表會占用多個索引位)

?insert:對指定索引位進行新增數(shù)據(jù)(如果新增的索引不存在,則會默認添加到最后索引位)

三、列表的修改

? 1、通過索引來修改

? ? ? ? ? ? ? ? ? ? ? ? 列表名 [要修改的索引位]="要修改的內(nèi)容"

? ? ? ? ? ? ? ? ? ? ? ? ?。。∷饕淮嬖诘臅r候,會報錯

四、列表的刪除

1、del 刪除指定索引位的內(nèi)容

? ??????????????????????del????列表名????[需要刪除的索引]

2、pop 默認刪除最后一個元素

3、remove 根據(jù)元素的值來進行刪除

五、列表的查詢

index, count

1、ndex?查詢列表中的元素,如果存在就返回給元素的索引,不存在就報錯

? ? ? ? ? ? ? ? ? ? 格式:? ? 列表名稱 . index ( 查詢的內(nèi)容 )

2、count?查詢列表中的元素的個數(shù)

? ? ? ? ? ? ? ? ? ? 格式;? ? 列表名 . count ( 所要查詢個數(shù)的元素 )

六、列表的排序

1、sort 方法是將list按特定順序重新排列,默認為由小到大,參數(shù)reverse=True可改為倒序,由大到小。

2、reverse 方法是將 list 反轉(zhuǎn)

七、列表的循環(huán)取值

方法一:for????循環(huán)

? ? ? ? ? ? 方法二:while 循環(huán)

八、列表嵌套

變量=[,,,]

、列表的新增

append, extend, insert

?append:直接在列表后方進行拼接添加的是一個元素(列表會占用一個索引位)

extend:直接在后方拼接追加的多個元素(列表會占用多個索引位)

?insert:對指定索引位進行新增數(shù)據(jù)(如果新增的索引不存在,則會默認添加到最后索引位)

三、列表的修改

? 1、通過索引來修改

? ? ? ? ? ? ? ? ? ? ? ? 列表名 [要修改的索引位]="要修改的內(nèi)容"

? ? ? ? ? ? ? ? ? ? ? ? ?。?!索引不存在的時候,會報錯

四、列表的刪除

1、del 刪除指定索引位的內(nèi)容

? ??????????????????????del????列表名????[需要刪除的索引]

2、pop 默認刪除最后一個元素

3、remove 根據(jù)元素的值來進行刪除

五、列表的查詢

index, count

1、ndex?查詢列表中的元素,如果存在就返回給元素的索引,不存在就報錯

? ? ? ? ? ? ? ? ? ? 格式:? ? 列表名稱 . index ( 查詢的內(nèi)容 )

2、count?查詢列表中的元素的個數(shù)

? ? ? ? ? ? ? ? ? ? 格式;? ? 列表名 . count ( 所要查詢個數(shù)的元素 )

六、列表的排序

1、sort 方法是將list按特定順序重新排列,默認為由小到大,參數(shù)reverse=True可改為倒序,由大到小。

2、reverse 方法是將 list 反轉(zhuǎn)

七、列表的循環(huán)取值

方法一:for????循環(huán)

? ? ? ? ? ? 方法二:while 循環(huán)

八、列表嵌套

格式:變量名 = [ , [ , ] ]

十一單元——元組和字典

一、元組

1、元組的格式

變量名=( , , , , )?

2、訪問元組

? ? ? ? ? ? ? ? 通過索引來取數(shù)據(jù):

? ? ? ? ? ? ? ? ? ? ? ? ? ? 索引存在時會輸出相對應索引的元素

? ? ? ? ? ? ? ? ? ? ? ? ? ? 索引不存在時會報錯

3、查詢個數(shù)

count查詢元素存在的個數(shù)

4、查詢索引

index查詢元素的索引,有對應元素返回索引,如果無則報錯

5、修改數(shù)據(jù)

? ? ? ? ? ? ? ? 元組不能修改數(shù)據(jù)(需與列表相互轉(zhuǎn)換之后才可改變元素)

6、類型轉(zhuǎn)換

元組轉(zhuǎn)列表:list(元組名)

列表轉(zhuǎn)元組:tuple(列表名)

7、元組循環(huán)取值

? ? ? ? ? ? ? ? 方法一:for循環(huán)取值

for? i? in? 元組名? :

print( i )

? ? ? ? ? ? ? ? 方法二:while 循環(huán)取值

? ? ? ? ? ? ? ? ? ? ? ? ? ? 先定義變量? ? i = 0

while? i? <? len(元組名):

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? print( 元組名 [ i ] )

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? i? +? =? 1

二、字典

1、字典格式

變量名={ key1 : value , key2 : value ,,,}

? ??????????????字典的每個元素由2部分組成,鍵(key):值(value)

2、根據(jù)鍵訪問值

? ? ? ? ? ? ? ? 有對應Key時,會輸出相應的Value值

info={"name":"anfly","age":18,"sex":"男"}

print ( info [ " name " ] )

# anfl

? ? ? ? ? ? ? ? 若無對應的Key時,則會報錯

? ? ? ? ? ? ? ? 如果不確定字典中是否存在某個鍵而又想獲取其值時,如何操作?

列表名 . get ( 不確定的key值 )

列表名 . get ( 不確定的key值? ,? 不存在時提示內(nèi)容)

3、修改元素

? ? ? ? ? ? ? ? 字典里每個元素都是可修改的,只要通過Key找到Value,即可修改,否則是新增

? ??????????????有對應的key則是修改數(shù)據(jù),沒有對應的key是新增數(shù)據(jù)

4、添加元素

格式:字典名 [ 新增Key值 ] = 新增 Value值

5、刪除元素

1)del

del? 字典名會刪除整個字典

del? 字典名? [ key值 ]會刪除指定元素

2)clear? ? 清空

字典名 . clear ( )?可以清除字典全部元素

6、查詢長度

?len ( 字典名 ) : 查詢鍵值對的個數(shù)

7、字典中循環(huán)

方法一:for? i? 字典名 . keys() :

print ( i , 字典名 [ i ] )

方法二:for? k , v? 字典名 . items():

print ( k , v )

方法三:for? i? in? 可迭代? :

print? ( i )

for? i? ,? ch? in? enumerate( Key值 ):

print ( i , ch )

十二單元——集合和函數(shù)

一.集合

定義特征:集合是無序的,集合中元素是唯一的,集合一般是用于元組或者列表中元素去重

格式:變量名=set()

? ? ? ? ? ? 變量名.add(元素)? ?#不能初始化

添加元素:add? update

刪除元素:remove? ? pop? ? ?discard

二.集合的交集和并集

交集:使用&連接多個集合,得到相同的元素

并集:使用|連接對個集合,得到全部集合中全部的元素

三.公共方法

運算符:* (復制)? ? ? +(合并)? ? ? in(元素是否存在)? ? ? not in(元素是否不存在)

python中的內(nèi)置函數(shù):


zhangyiwen

長度:len()

最大值:max()

刪除:del()

四.函數(shù)

定義:在開發(fā)程序時,需要某塊代碼多次,但是為了提高編寫的效率以及代碼的重用,所以把具有獨立功能的代碼塊組織為一個小模塊,這就是函數(shù)

格式:def? ?函數(shù)名():

????????????????????執(zhí)行語句

????????????函數(shù)名()

位置參數(shù)格式? ? ?def函數(shù)名(參數(shù)1,參數(shù)2):

????????????????????????????????????代碼塊

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?函數(shù)名(值1,值2)

定義時小括號中的參數(shù),用來接收參數(shù)用的,稱為 “形參”

調(diào)用時小括號中的參數(shù),用來傳遞給函數(shù)用的,稱為 “實參”

關(guān)鍵字參數(shù)格式:def函數(shù)名(參數(shù)1,參數(shù)2):

????????????????????????????????????代碼塊

????????????????????????????函數(shù)名(參數(shù)1=值1,參數(shù)2=值2)

缺省參數(shù)定義:在形參中默認有值的參數(shù),稱之為缺省參數(shù)

不定長參數(shù):有時可能需要一個函數(shù)處理比當初聲明時更多的參數(shù),這些參數(shù)叫做不定長參數(shù),聲明時不會命名

參數(shù)位置順序:deffun(位置參數(shù),*args,缺省參數(shù),**kwargs):

????????????????????????????????????代碼塊

????????????????????????????fun(參數(shù)值)

函數(shù)類型

????1. 無參數(shù),無返回值:此類函數(shù),不能接收參數(shù),也沒有返回值,一般情況下,打印提示燈類似的功能,使用這類的函數(shù)

????2. 無參數(shù),有返回值:此類函數(shù),不能接收參數(shù),但是可以返回某個數(shù)據(jù),一般情況下,像采集數(shù)據(jù),用此類函數(shù)

????3. 有參數(shù),無返回值:此類函數(shù),能接收參數(shù),但不可以返回數(shù)據(jù),一般情況下,對某些變量設(shè)置數(shù)據(jù)而不需結(jié)果時,用此類函數(shù)

????4. 有參數(shù),有返回值:此類函數(shù),不僅能接收參數(shù),還可以返回某個數(shù)據(jù),一般情況下,像數(shù)據(jù)處理并需要結(jié)果的應用,用此類函數(shù)

函數(shù)的嵌套:一個函數(shù)里面又調(diào)用了另外一個函數(shù),這就是所謂的函數(shù)嵌套調(diào)用

五.變量

定義:

局部變量,就是在函數(shù)內(nèi)部定義的變量

全局變量,在函數(shù)外邊定義的變量叫做全局變量

十三單元——python的文件操作異常處理

一.文件的介紹

1.文件

2.文件的作業(yè)

二.文件的打開和關(guān)閉

1.打開文件

打開一個已經(jīng)存在的文件,或者新建一個文件


zhangyiwen

2.寫數(shù)據(jù)? write

3.讀數(shù)據(jù)? ? read? ?readline? ?readlines

4.可寫? a

5.讀數(shù)據(jù)? rd

6.寫數(shù)據(jù)? wb

7.關(guān)閉文件? ?close()

三.文件和文件夾的操作

1.文件重命名

os模塊中的rename()可以完成對文件的重命名操作

2.刪除文件

os模塊中remove()可以完成對文件的重命名操作

3.創(chuàng)建文件夾

os模塊中的mkdir()可以完成對文件的重命名操作

4.獲取當前目錄

os模塊中的getcwd()可以獲取當前目錄

四.異常

1.定義:異常即是一個事件,該事件會在程序執(zhí)行過程中發(fā)生,影響了程序的正常執(zhí)行。一般情況下,在Python無法正常處理程序時就會發(fā)生一個異常。異常是Python對象,表示一個錯誤。當Python腳本發(fā)生異常時我們需要捕獲處理它,否則程序會終止執(zhí)行。

2.作用

捕捉異??梢允褂胻ry/except語句。try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常信息并處理。如果你不想在異常發(fā)生時結(jié)束你的程序,只需在try里捕獲它。

3.語法

4.使用except而不帶任何異常類型

5.使用except而帶多種類型

6.try-finally語句

7.異常傳遞

8.觸發(fā)異常

9.用戶自定義異常

五.模塊

1.定義:Python 模塊(Module),是一個Python文件,以.py 結(jié)尾,包含了Python 對象定義和Python語句

2.引入:import

3.from...import語句

4.from...import*語句

六.python中的包

定義:包是一個分層次的文件目錄結(jié)構(gòu),它定義了一個由模塊及子包,和子包下的子包等組成的 Python 的應用環(huán)境。簡單來說,包就是文件夾,但該文件夾下必須存在init.py 文件, 該文件的內(nèi)容可以為空。init.py 用于標識當前文件夾是一個包。

第十五單元 Python單元測試之unittest

一、單元測試、集成測試、功能測試

單元測試:顆粒度最小,一般由開發(fā)小組采用白盒方式來測試,主要測試單元是否符合“設(shè)計”;是指對軟件中的最小可測試單元進行檢查和驗證

集成測試:介于單元測試和系統(tǒng)測試之間,一般由開發(fā)小組采用白盒加黑盒的方法測試,即驗證設(shè)計又驗證需求。主要用來測試模板與模板之間的接口,同時還要測試一些主要的業(yè)務功能。

功能測試:顆粒度最大,一般由獨立的測試小組采用黑盒的方式來測試,主要測試系統(tǒng)是否符合需求規(guī)格說明書。

一、UnitTest組成

? ? ? ? (1)setUp():準備環(huán)境,執(zhí)行每個測試用例的前置條件;????

????????(2)tearDown():環(huán)境還原,執(zhí)行每個測試用例的后置條件;?

????????(3)setUpClass():必須使用@classmethod裝飾器,所有case執(zhí)行的前置條件,只運行一次;

????????(4)tearDownClass():必須使用@classmethod裝飾器,所有case運行完后只運行一次;

1、testFixture

? ? ? ? ? ? 作用:用于一個測試環(huán)境的準備和銷毀還原

? ? 2、testCase

? ? ? ? ? ? 定義:就是一個測試用例

3、testSuite

? ? ? ? ? ? ?測試套件,可以將多個測試用例集合在一起,能一起執(zhí)行選中的測試用例

? 4、testRunner

? ? ? ? ? ? ?執(zhí)行測試用例

二、斷言

? ? ? ?(1)assertEqual(a,b):斷言a和b是否相等,相等則測試用例通過。(最常用的)

? ? ? ? (2)assertNotEqual(a,b):斷言a和b是否相等,不相等則測試用例通過。

? ? ? ? (3)assertTrue(x):斷言x是否True,是True則測試用例通過。

? ? ? ? (4)assertFalse(x):斷言x是否False,是False則測試用例通過。

? ? ? ?(5) assertIs(a,b):斷言a是? ??否是b,是則測試用例通過。

? ? ? ? (6)assertNotIs(a,b):斷言a是否是b,不是則測試用例通過。

? ? ? ? (7)assertIsNone(x):斷言x是否None,是None則測試用例通過。

? ? ? ?(8) assertIsNotNone(x):斷言x是否None,不是None則測試用例通過。

? ? ? ? (9)assertIn(a,b):斷言a是否在b中,在b中則測試用例通過。

? ? ? ?(10) assertNotIn(a,b):斷言a是否在b中,不在b中則測試用例通過。

? ?????(11)assertIsInstance(a,b):斷言a是是b的一個實例,是則測試用例通過。

? ? ? ? (12)assertNotIsInstance(a,b):斷言a是是b的一個實例,不是則測試用例通過。

三、生成測試報告

1、下載一個文件,HTMLTestRunner.py,復制到項目中

? ? ?2、使用

四、讀取CSV數(shù)據(jù)

? ? ? 1、創(chuàng)建CSV文件并添加數(shù)據(jù)

? 2、創(chuàng)建讀取CSV文件

? 3、在測試類中調(diào)用即可

五、xml讀取

? 1、創(chuàng)建xml文件

? 2、編寫讀取xml文件的文件

? ? 3、調(diào)用

第十六單元pytest

一、命名規(guī)則

? ? ? ? 1、先安裝pip install pytest 和 pip install pytest-html (生成html報告)

? ? ? ? 2、類名和方法名必須是以test開頭

二、自動生成html測試報告

方式一

? ? ? ? ? ? 1、pytest.main("模塊.py")【運行指定模塊下,運行所有test開頭的類和測試用例】

? ? ? ? ? ? 2、格式:pytest.main(["--html=./report.html","模塊.py"])

? ? ? ? 方式二

? ? ? ? ? ? 1、運行指定模塊指定類指定用例,冒號分割,并生成測試報告

? ? ? ? ? ? 2、格式:pytest.main([‘--html=./report.html’,‘模塊.py::類::test_a_001'])

? ? ? 方式三

? ? ? ? ? ? 1、Pytest調(diào)用語句

? ??????????-x:出現(xiàn)一條測試用例失敗就退出測試

????????????-v:豐富信息模式, 輸出更詳細的用例執(zhí)行信息

????????????-s:顯示print內(nèi)容

????????????-q:簡化結(jié)果信息,不會顯示每個用例的文件名

三、Pytest運行方式

? ? ? ? ? ? 1、“.”點號,表示通過

? ? ? ? ? ? 2、F表示失敗,F(xiàn)ailue

? ? ? ? ? ? 3、E表示用例中存在異常,Error

四、文件讀取

? ? ? ? ? ? (1)讀取csv文件:先創(chuàng)建文件,然后讀取

? ? ? ? ? ? (2)讀取xml文件

1、創(chuàng)建xml文件

? ???????????????????2、編寫讀取xml文件的文件

?? ??????????????????3、調(diào)用

五、Allure

? ? ? ? ? ? 概念:生成測試報告的框架? ? ? ? ? ??

? ? ? ? ? ? 1、先配置allure的環(huán)境變量

? ? ? ? ? ? 2、驗證allure是否配置成功

? ? ? ? ? ? 3、其次要安裝allure:pip install allure-pytest

? ? ? ? ? ? 4、allure常用的幾個特性

? ? ? ? ? ? ? ? ? ?(1) @allure.feature# 用于描述被測試產(chǎn)品需求

????????????????????(2)@allure.story# 用于描述feature的用戶場景,即測試需求

????????????????????(3)with allure.step():# 用于描述測試步驟,將會輸出到報告中

????????????????????(4)allure.attach# 用于向測試報告中輸入一些附加的信息,通常是一些測試數(shù)據(jù),截圖等

第十七單元Requests

一、介紹

? ? ? ? ? ?1、Requests是一個很實用的Python HTTP客戶端庫,是Python語言的第三方的庫,專門用于發(fā)送HTTP請求。

? ? ? ? ? ? 2、下載:pip install requests

????????????3、get請求

? ? ? ? ? ? (1)get無參、get傳參

? ? ? ? ? ? (2)post請求

二、Requests響應

? ??????????r.status_code? ? ? ? 響應狀態(tài)碼

????????????r.heards? ? ? ? ? ?? 響應頭

????????????r.cookies? ? ? ? ? ? 響應cookies

????????????r.text? ? ? ? ? ? ?? 響應文本

????????????r. encoding? ? ? ? ? 當前編碼

????????????r. content? ? ? ? ? 以字節(jié)形式(二進制)返回

三、Requests擴充

? ??????????1.添加等待時間:requests.get(url,timeout=1),如果超過等待時間則報錯

????????????2.添加請求頭信息:requests.get(url,headers=headers),設(shè)置請求頭

????????????3.添加文件:requests.post(url,files=files),添加文件

四、Requests+Pytest+Allure

? ? ? ? ? ? 1、流程:(1)讀取文件中的數(shù)據(jù)

? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)requests拿到數(shù)據(jù)請求接口返回狀態(tài)碼

????????????????????????????(3)通過斷言驗證返回狀態(tài)碼和200對比

????????????????????????????(4)生成allure的測試報告

五、讀取csv文件

? ? ? ? 1、通過excel另存為csv即可

? ? ? ? 2、讀取數(shù)據(jù):readDemo

? ? ? ? 3、request請求接口返回狀態(tài)碼

? ? ? ? 4、pytest斷言設(shè)置并結(jié)合allure生成測試報告

? ? ? ? 5、測試報告展示

六、 讀取excle文件流程

? ? ? ? ? 1、存儲數(shù)據(jù)(xlsx)

? ??????????2、讀取數(shù)據(jù):readDemo????

? ??????????3、request請求接口返回狀態(tài)碼

? ??????????4、pytest斷言設(shè)置并結(jié)合allure生成測試報告

? ???????????5、測試報告展示

第十八單元自動化持續(xù)集成

一、概念

? ? ? ?1、 就是一套標準的流程,最重要的組成部分就是持續(xù)集成(Continuous integration,簡稱CI)

? ? ? ? 2、持續(xù)集成:頻繁地將代碼集成到主干。

? ? ? ? 3、持續(xù)交付:指的是,頻繁地將軟件的新版本,交付給質(zhì)量團隊評審。

? ? ? ? 4、持續(xù)部署:是持續(xù)交付的下一步,評審通過后,自動部署到生成環(huán)境。

二、Jenkins

? ? ? ? ? ? 1、概念:Jenkins 是一個開源軟件項目,是基于Java開發(fā)的一種可拓展持續(xù)集成工具,主要用于持續(xù)、自動地構(gòu)建 / 測試 / 集成軟件項目以及監(jiān)控一些定時執(zhí)行的任務。

? ? ? ? ? ? 2、目的:(1)持續(xù)、自動地構(gòu)建/測試軟件項目。

????????????????????????????(2)監(jiān)控軟件開放流程,快速問題定位及處理,提示開放效率。

? ? ? ? ? ? 3、特性:易于安裝、易于配置、通過 RSS 發(fā)布構(gòu)建結(jié)果或當構(gòu)建完成時通過 e-mail 通知、生成 JUnit / TestNG 測試報告、分布式構(gòu)建、插件支持,支持擴展插件

? ? ? ? ? ? 4、產(chǎn)品發(fā)布流程:產(chǎn)品設(shè)計成型 → 開發(fā)人員開發(fā)代碼 → 測試人員測試功能 → 運維人員發(fā)布上線

三、安裝Jenkins.war包

? ? ? ? ? ? ? ? (1)啟動方式:在tomcat的bin目錄下啟動(最常用)

? ? ? ? ? ? ? ? ? (2)方式2:打開cmd,進入jenkins目錄,然后運行命令:java -jar jenkins.war

四、搭建Jmeter+jenkins+ant持續(xù)化

? ? ? ? ? ? ? ? ? ?(1) Ant下載及配置安裝

????????????????????下載Apache-ant

????????????????????解壓到你想要安裝的目錄

????????????????????配置環(huán)境變量

????????????????????驗證是否安裝成功

????????????????????拷貝Jemter包到ant下

????????????????????新建一個build.xml文件

? ? ? ? ? ? ? ? ? ? (2)進行命令行模式后,進入剛才創(chuàng)建的xml文件存放目錄,如:D:\build 輸入ant即可

五、集成jenkins

? ??????????????????打開Jenkins,配置Ant環(huán)境

????????????????????新建一個自由風格任務

????????????????????構(gòu)建觸發(fā)器

????????????????????構(gòu)建配置

????????????????????配置HTML插件

????????????????????立即構(gòu)建

????????????????????針對報告中不顯示聚合報告的情況

????????????????????Jenkins執(zhí)行自動化測試后發(fā)送測試報告郵件

第十九單元自動化

一、自動化測試的好處

? ? ? ? ? ????1、? 縮短測試周期:計算機行業(yè)更新迭代快速,大量頻繁的回歸測試消耗時間,自動化測試能夠?qū)⒅貜偷膶嵭薪唤o計算機去做,加快測試速度。

????????????2、避免人為出錯:測試人員不可能持續(xù)高度集中,并且人類易受外界影響(頭疼腦熱,精神不振),可能會造成人為錯誤

????????????3、測試信息存儲:自動化測試將測試信息和數(shù)據(jù)儲存在文件中,思路清晰明確,交接方便

????????????4、輕易獲取覆蓋率:自動化測試能夠解放測試人員,使測試人員能夠有更多的精力做那些非重復性的工作。

????????????5、其他:自動化測試可以是實現(xiàn)自動或者定時執(zhí)行

注意:自動化測試的方向是對的,而且趨勢也是如此,但是有些自動化實現(xiàn)不了的還是會手動測試的。

二、自動化分類

? ? ? ? ? ? ? ?1、 整體分類

? ? ? ? ? ? ? ? ? ? (1)自動化功能測試

????????????????????(2)自動化性能測試

????????????????2、自動化功能測試的分類:

????????????????????(1)單元測試:程序員搞定

????????????????????(2)功能測試

????????????????????(3)接口測試:大中型項目或長期項目可以采用自動化測試

? ? ? ? ? ? ? ? ? ? 3、性能測試主要是使用測試工具

? ? ? ? ? ? ? ? ? ? ? (1)Loadrunner、Jmeter等,對軟件進行壓力測試、負載測試等等,因為這些無法用手工進行代替,所以必須自動化。

三、web自動化條件的使用和范圍

? ? ? ? ? ? ? ? ? ? 1、前提條件

? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)手動測試已經(jīng)完成,后期再不影響進度的前提下逐漸實現(xiàn)自動化

? ? ? ? ? ? ? ? ? ? ? ? ? ?( 2)項目周期長,重復性的工作都交給機器去實現(xiàn)

? ? ? ? ? ? ? ? ? ? ? ? ? ?( 3)需求穩(wěn)定,項目變動不大

? ? ? ? ? ? ? ? ? ? ? ? ? ? (4)自動化測試腳本復雜度比較低

? ? ? ? ? ? ? ? ? ? ? ? ? ?( 5)可重復利用

? ? ? ? ? ? ? ? ? ? 2、使用自動化測試的場景

? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)頻繁的回歸測試

? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)冒煙測試

? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)傳統(tǒng)行業(yè)需求變化不大,應用頻繁

? ? ? ? ? ? ? ? ? ? ? ? ? ? (4)性能測試

四、web自動化常用的工具

? ? ? ? ? ? 1、QTP(收費)

? ? ? ? ? ? 2、Selenium(開源)

? ? ? ? ? ? 3、RFT(收費)

? ? ? ? ? ? 4、(1)元素定位工具:css選擇器、xpath

? ? ? ? ? ? ? ? ? ? (2)環(huán)境工具:(1)firefox35

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)firebug插件

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)firepath插件

? ? ? ? ? ? 5、什么是xpath:XPath即為XML路徑語言,它是一種用來(標準通用標記語言的子集)在 HTML\XML 文檔中查找信息的語言。

? ? ? ? ? ? 6、什么是xml:XML 指可擴展標記語言(EXtensible Markup Language)XML 是一種標記語言,很類似 HTMLXML 的設(shè)計宗旨是傳輸數(shù)據(jù),而非顯示數(shù)據(jù)

? ? ? ? ? ? 7、(1)xml是設(shè)計為傳輸和存儲數(shù)據(jù)的。

? ? ? ? ? ? ? ? (2)html是顯示數(shù)據(jù)以及更好的顯示數(shù)據(jù)

? ? ? ? ? ? 8、獲取元素

? ? ? ? ? ? ? ? (1)nodename:選取此節(jié)點的所有子節(jié)點

? ? ? ? ? ? ? ? (2)/從根節(jié)點選取

? ? ? ? ? ? ? ? (3)//從匹配選擇當前節(jié)點選擇文檔的節(jié)點,不考慮位置

? ? ? ? ? ? ? ? (4)“.”選取當前節(jié)點

? ? ? ? ? ? ? ? ? (5)“..”選取當前節(jié)點的父節(jié)點

? ? ? ? ? ? ? ? (6)@選取屬性

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容