Python3 接口自動化測試項目實戰一(WEB項目)

1.1  接口測試項目搭建

1.1.1 教育局招生管理系統部署

教育局招生管理系統是基於java+mysql,下面介紹它的部署過程。javascript

1.從個人網盤下載部署文件。html

 

2.安裝jdk以及配置環境變量。java

點擊文件進行安裝。mysql

 

下一步下一步直接安裝。web

本人的安裝路徑是C:\Program Files\Java\jdk1.7.0_17。正則表達式

安裝完成後須要設置環境變量從而使編譯器正常使用。右擊「計算機」選擇「屬性」選擇左邊「高級系統設置」à選擇上面「高級」選項卡點擊右下角「環境變量」按鈕。sql

接下來彈出的對話框會出現用戶變量和系統變量。用戶變量對當前登陸帳戶有效,系統變量對全部用戶都有效,讀者可根據須要設置。數據庫

環境變量配置的方法/步驟:apache

1). 在系統變量裏點擊新建,變量名填寫JAVA_HOME,變量值填寫JDK的安裝路徑,在這裏就填寫「C:\Program Files\Java\jdk1.7.0_17」。json

2). 在系統變量裏點擊新建變量名填寫CLASSPATH,變量值填寫。「.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar」,注意不要忘記前面的點和中間的分號。

3). 在系統變量裏找到Path變量,這是系統自帶的,不用新建。雙擊Path,因爲原來的變量值已經存在,故應在已有的變量後加上「;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin」。注意前面的分號。

驗證的方法:在運行框中輸入cmd命令,回車後輸入javac,按回車出現如下畫面。

 

3.解壓 apache-tomcat-7.0.42 壓縮包,把 recruit.students.war 包放到E:\apache-tomcat-7.0.42\webapps 下。

 

4. 點擊 安裝mysql 服務端。

 

設置mysql帳戶和密碼: root /root

默認下一步下一步安裝完成。

5.用mysql 客戶端工具 navicat 鏈接mysql ->新建一個recruit_students 庫。

 

6.把 recruit_students_sql 數據文件導入到新建的庫中。

 

7.導完以後,會看到以下圖一些表。

 

8.修改war包下的數據庫配置文件:datasource.properties

E:\apache-tomcat-7.0.42\webapps\recruit.students\WEB-INF\classes 下。

 

配置jdbc的URL。

 

9.mysql 數據庫用戶訪問受權。

 

受權語句:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

commit;

10.點擊E:\apache-tomcat-7.0.42\bin下的startup 啓動tomcat.

 

11.訪問教育局招生系統。

訪問地址:http://127.0.0.1:8090/recruit.students/login/view

初始帳戶和密碼: admin /test123

 

 

備註:tomcat默認的端口是8080,我用的是8090,是由於修改了tomcat的端口。

17.1.2教育局招生管理系統的功能清單

 

1.2  項目第一個接口測試用例

教育局招生管理系統登陸接口用例實現步驟:

一、打開抓包工具:fiddler。

二、登陸教育局招生管理系統。

三、抓取登陸http請求。

四、分析登陸http請求(請求地址、是否重定向、get請求仍是post請求、請求的頭信息、請求的response)。

五、數據的處理(處理抓取到的頭信息)

六、編寫接口代碼。

七、人工驗證接口測試結果。(後續講斷言)

 

第一步:下面對fiddler抓取到的數據進行分析。

【請求方法】:帶參數的get

【請求地址】:http://127.0.0.1:8090/recruit.students/login/in?account=admin&pwd=660B8D2D5359FF6F94F8D3345698F88C

【請求頭信息】:

Host: 127.0.0.1:8090

Connection: keep-alive

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

Referer: http://127.0.0.1:8090/recruit.students/login/view

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

Cookie: JSESSIONID=AED5BBB1B5E4F9BEDCC3A0FC88668871; userInfoCookie=""

【請求的response】:空

請求的 response 爲空是由於登陸的時候,作了跳轉,狀態碼爲:302,跳轉到了

http://127.0.0.1:8090/recruit.students/school/manage/index 這個地址,這個狀態碼爲200。

 

查看http://127.0.0.1:8090/recruit.students/school/manage/index 這個地址請求的response,返回的是登錄後的信息。

 

經過分析,咱們是清楚的瞭解到這個接口的狀況。

第二步:接着還須要請求頭信息的處理,去掉一些沒用的請求頭信息,保留以下:

"Connection": "keep-alive",

"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

"Referer": "http://127.0.0.1:8090/recruit.students/login/view",

【Connection】:若是隻是測試登陸接口,這個參數能夠去掉,若是須要測試登陸以後新建學校,那這個頭信息就須要保留。

【User-Agent】:模擬用戶利用瀏覽器訪問Web網站的真實行爲,每一個接口都須要。

【Referer】:登陸重定向的時候用到。

第三步:最後編寫代碼實現。

程序實現:

方式一:直接在URL上寫完整的URL。

import requests

url="http://127.0.0.1:8090/recruit.students/login/in?account=admin&pwd=660B8D2D5359FF6F94F8D3345698F88C"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息。

headers = {

    "Connection": "keep-alive",

    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

    "Referer": "http://127.0.0.1:8090/recruit.students/login/view",  

  }

 

# 發送get請求

response = requests.get(url,headers = headers)

 

# 查看響應內容,response.text 返回的是Unicode格式的數據

print(response.text)

 

# 查看響應碼

print(response.status_code)

運行結果:

 

方式二:帶參數的get請求。

import requests

url="http://127.0.0.1:8090/recruit.students/login/in?"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息

headers = {

    "Connection": "keep-alive",

    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

    "Referer": "http://127.0.0.1:8090/recruit.students/login/view",

  }

# URL參數

payload = {'account': 'admin','pwd':'660B8D2D5359FF6F94F8D3345698F88C'}

# 發送get請求

response = requests.get(url,headers = headers,params=payload)

# 查看響應內容,response.text 返回的是Unicode格式的數據

print(response.text)

# 查看響應碼

print(response.status_code)

運行結果:

 

方式三:data=payload 的Post請求。

 

import requests

url="http://127.0.0.1:8090/recruit.students/login/in?"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息·

headers = {

    "Connection": "keep-alive",

    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

    "Referer": "http://127.0.0.1:8090/recruit.students/login/view",

  }

# URL參數

payload = {'account': 'admin','pwd':'660B8D2D5359FF6F94F8D3345698F88C'}

# 發送Post請求

response = requests.post(url,headers = headers,data=payload)

# 查看響應內容,response.text 返回的是Unicode格式的數據

print(response.text)

# 查看響應碼

print(response.status_code)

運行結果:

 

這3種方式都實現了教育局招生管理系統登陸接口用例,咱們再打印請求response後的URL

http://127.0.0.1:8090/recruit.students/school/manage/index;jsessionid=13284D7E10CA9E92A443873A59D9E3A1,從這個地址看出,咱們登陸的時候,接口重定向,跳轉到了http://127.0.0.1:8090/recruit.students/school/manage/index 地址,跟咱們經過抓包的結果是同樣的。

 

第四步:驗證結果。

經過程序運行的結果和抓包的結果對比,驗證經過。

1.3  測試用例斷言

接口用例的斷言設計,客戶端須要發送了http請求,服務端返回 response(html內容),就須要咱們考慮提取html內容裏的元素做爲用例的檢查點,例如

教育局招生管理系統登陸接口用例登陸成功後,咱們能夠設置斷言看是否能夠從服務端返回 response(html內容)中獲取「退出登陸」文本。

 

第一步:首先,咱們先發送請求,獲取服務端返回 response(html內容)進行分析。

 

爲了更進一步確認,能夠把返回的html內容拷貝到 EditPlus 3 下查看。

 

第二步,編寫代碼,進行斷言判斷。

程序實現:

from bs4 import BeautifulSoup

import requests

url="http://127.0.0.1:8090/recruit.students/login/in?"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息·

headers = {

    "Connection": "keep-alive",

    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

    "Referer": "http://127.0.0.1:8090/recruit.students/login/view",

  }

# URL參數

payload = {'account': 'admin','pwd':'660B8D2D5359FF6F94F8D3345698F88C'}

# 發送get請求

response = requests.get(url,headers = headers,params=payload)

 

# 查看響應內容,response.text 返回的是Unicode格式的數據

html=response.text

#建立 Beautiful Soup 對象

soup = BeautifulSoup(html,"lxml")

# 獲取「退出登陸」文本

info =soup.select('.toprighthref')[0].get_text()

#斷言,檢查客戶端發送get請求結果是否符合預期。

try:

    assert info == "退出登陸"

    print('-----pass------')

except ValueError:

print("----fail-----")

運行結果:

 

這裏獲取html的文本信息,只是使用前面介紹的BeautifulSoup,你們能夠試試用正則表達式或者XPath試試。

備註:http請求的端口,儘可能不要用相應的狀態碼(response.status_code)做爲斷言,例如:狀態碼(200),就認爲是用例成功,現實中,不少請求,狀態碼返回 200,其實是請求失敗的。因此用來作斷言的條件要準確和惟一。

1.4  接口測試用例的設計

Web接口測試其實能夠等同於功能測試,只是被測對象是接口,無界面交互而已;因此用例設計的方法是通用的。

經常使用的測試方法以下:

一、等價類劃分法

二、邊界值分析

三、因果圖斷定法

四、場景分析法

17.4.1接口測試用例設計關注點

一、接口的協議類型(http仍是https…)。

二、 接口請求的方法(get/post…)。

三、 參數是否必填。

四、參數間是否存在關聯。

五、參數取值範圍。

六、業務規則。

17.4.2接口測試用例設計思路

1)   優先級--針對全部接口。

一、暴露在外面的接口,由於一般該接口會給第三方調用。

二、供系統內部調用的核心功能接口。

三、供系統內部調用非核心功能接口。

2)   優先級--針對單個接口。

一、正向用例優先測試,逆向用例次之(一般狀況,非絕對)。

二、是否知足前提條件 > 是否攜帶默認參值參數 > 參數是否必填 > 參數之間是否存在關聯 > 參數數據類型限制 >參數數據類型自身的數據範圍值限制。

17.4.3接口測試用例設計分析

一般,設計接口測試用例須要考慮如下幾個方面:

1、是否知足前提條件

有些接口須要知足前置條件,纔可成功獲取數據。常見的,須要登錄Token。

逆向用例:

針對是否知足前置條件(假設爲n個條件),設計0~n條用例。

2、是否攜帶默認值參數。

正向用例:

帶默認值的參數都不填寫、不傳參,必填參數都填寫正確且存在的「常規」值,其它不填寫,設計1條用例。

3、業務規則、功能需求。

這裏根據實際狀況,結合接口參數說明,可能須要設計n條正向用例和逆向用例

4、參數是否必填。

逆向用例:

針對每一個必填參數,都設計1條參數值爲空的逆向用例。

5、參數之間是否存在關聯。

有些參數彼此之間存在相互制約的關係。

逆向用例:

根據實際狀況,可能須要設計0~n條用例。

6、參數數據類型限制。

逆向用例:

針對每一個參數都設計1條參數值類型不符的逆向用例。

7、參數數據類型自身的數據範圍值限制。

正向用例:

針對全部參數,設計1條每一個參數的參數值在數據範圍內爲最大值的正向用例。

逆向用例:

針對每一個參數(假設n個),設計n條每一個參數的參數值都超出數據範圍最大值的逆向用例。

針對每一個參數(假設n個),設計n條每一個參數的參數值都小於數據範圍最小值的逆向用例。

以上幾個方面考慮全的話,基本能夠作到以下幾個方面的覆蓋:

主流程測試用例:正常的主流程功能校驗。

分支流測試用例:正常的分支流功能校驗。

異常流測試用例:異常容錯校驗。

17.4.4接口測試用例設計模板

 

備註:模板會分享到網盤,你們能夠從網盤上下載。

1.5  教育局招生管理系統-接口測試用例

1.5.1測試用例1-新增學校

用例步驟:

一、登陸教育局招生管理系統

二、新建學校(學校名稱:tschool;學校類型:小學;錄取學生權限:勾選;備註:create a new school)

三、填寫完成,點提交。

 

經過fiddler抓包。

 

咱們能夠收集到接口的相關信息:

【請求方法】:POST

【URL】: http://127.0.0.1:8090/recruit.students/school/manage/addSchoolInfo

【headers】:

{"Connection": "keep-alive",

"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

"Referer": "http://127.0.0.1:8090/recruit.students/school/manage/index",}

【data】:

{"schoolName":"t_school",

"listSchoolType[0].id": "2",

"canRecruit":"" 1,

"remark":"create a new school",}

學校建立成功以後,咱們能夠經過學校列查看新建的數據。

學校列表是另外個接口:http://127.0.0.1:8090/recruit.students/school/manage/schoolInfoList

 

通過分析,咱們就能夠寫接口測試用例了。

程序實現:

import requests

import json

from urllib import parse

# 第一步:登陸教育局招生管理系統

url_login="http://127.0.0.1:8090/recruit.students/login/in?account=admin&pwd=660B8D2D5359FF6F94F8D3345698F88C"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息

headers = {

    "Connection": "keep-alive",

    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

    "Referer": "http://127.0.0.1:8090/recruit.students/login/view",

  }

 

# 發送get請求

response = requests.get(url_login ,headers = headers)

# 第一步:登陸教育局招生管理系統

url_login="http://127.0.0.1:8090/recruit.students/login/in?account=admin&pwd=660B8D2D5359FF6F94F8D3345698F88C"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息·

headers1 = {

    "Connection": "keep-alive",

    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

    "Referer": "http://127.0.0.1:8090/recruit.students/login/view",

  }

 

# 發送get請求

r1 = requests.get(url_login,headers = headers1)

#print(r1.text)

 

# 新建學校

url_create_school="http://127.0.0.1:8090/recruit.students/school/manage/addSchoolInfo"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息·

headers2 = {"Connection": "keep-alive",

"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

"Referer": "http://127.0.0.1:8090/recruit.students/school/manage/index",

"X-Requested-With": "XMLHttpRequest",

"Cookie": "JSESSIONID=09CD90A3357DEBD4F3B0F2CF3B387DCA",

}

 

formdata = {

"schoolName":"t_school2",

"listSchoolType[0][id]":"2",

"canRecruit":"1",

"remark":"create a new school_2",

}

 

# 經過urlencode()轉碼

postdata = parse.urlencode(formdata)

print(postdata)

# 建立session對象,能夠保存Cookie值。

ssion = requests.session()

# 發送附帶用戶名和密碼的請求,並獲取登陸後的Cookie值,保存在ssion裏。

r2 = ssion.post(url_create_school,headers = headers2,data=postdata)

html = r2.text

print(html)

# 查看響應碼

print(r2.status_code)

運行結果:

 

測試用例2:從學校列表查詢學校。

用例步驟:

一、登陸教育局招生管理系統

二、從學校列表查詢學校(學校名稱: t_school)

三、點查詢。

 

用fiddler抓包

 

代碼實現:

import requests

import json

from urllib import parse

import requests

# 第一步:登陸教育局招生管理系統

url_login="http://127.0.0.1:8090/recruit.students/login/in?account=admin&pwd=660B8D2D5359FF6F94F8D3345698F88C"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息

headers = {

    "Connection": "keep-alive",

    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

    "Referer": "http://127.0.0.1:8090/recruit.students/login/view",

  }

# 發送get請求

response = requests.get(url_login ,headers = headers)

# 第一步:登陸教育局招生管理系統

url_login="http://127.0.0.1:8090/recruit.students/login/in?account=admin&pwd=660B8D2D5359FF6F94F8D3345698F88C"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息·

headers1 = {

    "Connection": "keep-alive",

    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

    "Referer": "http://127.0.0.1:8090/recruit.students/login/view",

  }

# 發送get請求

r1 = requests.get(url_login,headers = headers1)

#print(r1.text)

# 查詢學校

url_find_school="http://127.0.0.1:8090/recruit.students/school/manage/schoolInfoList"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息·

headers2 = {""

"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:62.0) Gecko/20100101 Firefox/62.0",

"Accept": "application/json, text/javascript, */*; q=0.01",

"Referer": "http://127.0.0.1:8090/recruit.students/school/manage/index",

"X-Requested-With": "XMLHttpRequest",

"Cookie": "JSESSIONID=09CD90A3357DEBD4F3B0F2CF3B387DCA",

"Connection": "keep-alive",

}

formdata = {

"schoolName":"t_school",

"schoolType":"0",

"page":"1",

"pageSize":"15",

}

# 經過urlencode()轉碼

postdata = parse.urlencode(formdata)

#打印轉碼後的數據

print(postdata)

# 建立session對象,能夠保存登陸Cookie值。

ssion = requests.session()

# 發送附帶用戶名和密碼的請求,並獲取登陸後的Cookie值,保存在ssion裏。

r2 = ssion.post(url_find_school,headers = headers2,data=postdata)

html = r2.text

print(html)

# 查看響應碼

print(r2.status_code)

運行結果:

 

測試用例3:禁用學校。

 

經過fiddler抓包。

 

程序實現:

import requests

import json

from urllib import parse

import requests

# 第一步:登陸教育局招生管理系統

url_login="http://127.0.0.1:8090/recruit.students/login/in?account=admin&pwd=660B8D2D5359FF6F94F8D3345698F88C"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息

headers = {

    "Connection": "keep-alive",

    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99

 

Safari/537.36",

    "Referer": "http://127.0.0.1:8090/recruit.students/login/view",

  }

# 發送get請求

response = requests.get(url_login ,headers = headers)

 

# 第一步:登陸教育局招生管理系統

url_login="http://127.0.0.1:8090/recruit.students/login/in?account=admin&pwd=660B8D2D5359FF6F94F8D3345698F88C"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息·

headers1 = {

    "Connection": "keep-alive",

    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99

Safari/537.36",

    "Referer": "http://127.0.0.1:8090/recruit.students/login/view",

  }

# 發送get請求

r1 = requests.get(url_login,headers = headers1)

#print(r1.text)

# 查詢學校

url_DisableSchool="http://127.0.0.1:8090/recruit.students/school/manage/enableOrDisableSchool"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息·

headers2 = {""

"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:62.0) Gecko/20100101 Firefox/62.0",

"Referer": "http://127.0.0.1:8090/recruit.students/school/manage/index",

"Content-Type": "application/json",

"X-Requested-With": "XMLHttpRequest",

"Content-Length": "46",

"Cookie": "JSESSIONID=09CD90A3357DEBD4F3B0F2CF3B387DCA",

"Connection": "keep-alive",

}

# 接口的數據類型是json格式

formdata = {"id":"820890","disable":0,"schoolId":"251"}

# 經過urlencode()轉碼

postdata = parse.urlencode(formdata)

#打印轉碼後的數據

print(postdata)

# 建立session對象,能夠保存登陸Cookie值。

ssion = requests.session()

 

# 發送附帶用戶名和密碼的請求,並獲取登陸後的Cookie值,保存在ssion裏。

r2 = ssion.post(url_DisableSchool,headers = headers2,data=postdata)

html = r2.text

print(html)

 

# 查看響應碼

print(r2.status_code)

運行結果:

 

測試用例4:啓用學校。

程序實現:

import requests

import json

from urllib import parse

import requests

# 第一步:登陸教育局招生管理系統

url_login="http://127.0.0.1:8090/recruit.students/login/in?account=admin&pwd=660B8D2D5359FF6F94F8D3345698F88C"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息

headers = {

    "Connection": "keep-alive",

    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

    "Referer": "http://127.0.0.1:8090/recruit.students/login/view",

  }

# 發送get請求

response = requests.get(url_login ,headers = headers)

 

# 第一步:登陸教育局招生管理系統

url_login="http://127.0.0.1:8090/recruit.students/login/in?account=admin&pwd=660B8D2D5359FF6F94F8D3345698F88C"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息·

headers1 = {

    "Connection": "keep-alive",

    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",

    "Referer": "http://127.0.0.1:8090/recruit.students/login/view",

  }

 

# 發送get請求

r1 = requests.get(url_login,headers = headers1)

#print(r1.text)

 

# 啓用學校

url_DisableSchool="http://127.0.0.1:8090/recruit.students/school/manage/enableOrDisableSchool"

#把請求頭信息進行處理,去掉一些沒用的,保留一些有用頭信息·

headers2 = {""

"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:62.0) Gecko/20100101 Firefox/62.0",

"Referer": "http://127.0.0.1:8090/recruit.students/school/manage/index",

"Content-Type": "application/json",

"X-Requested-With": "XMLHttpRequest",

"Cookie": "JSESSIONID=365D9E30F67F88F7301B32AA83C14011",

"Connection": "keep-alive",

}

# 接口的數據類型是json格式

formdata = {"id":"820890","disable":1,"schoolId":"251"}

# 經過urlencode()轉碼

postdata = parse.urlencode(formdata)

#打印轉碼後的數據

print(postdata)

# 建立session對象,能夠保存登陸Cookie值。

ssion = requests.session()

 

# 發送附帶用戶名和密碼的請求,並獲取登陸後的Cookie值,保存在ssion裏。

r2 = ssion.post(url_DisableSchool,headers = headers2,data=postdata)

html = r2.text

print(html)

 

# 查看響應碼

print(r2.status_code)

運行結果:

 

備註:這裏我就不寫所有單個的用例了,用例狀況相似,一個一個去實現,同時,這裏我也暫時不作斷言,後續講單元測試框架再講框架自動的斷言。

相關文章
相關標籤/搜索