python介面自動化7-引數關聯
前言
我們用自動化發帖之後,要想接著對這篇帖子操作,那就需要用引數關聯了,發帖之後會有一個帖子的id,獲取到這個id,繼續操作傳這個帖子id就可以了
(部落格園的登入機制已經變了,不能用賬號和密碼登入了,換個網站,或者用cookie登入吧)
一、刪除草稿箱
1.我們前面講過登入後儲存草稿箱,那可以繼續接著操作:刪除剛才儲存的草稿
2.用fiddler抓包,抓到刪除帖子的請求,從抓包結果可以看出,傳的json引數是postId
3.這個postId哪裡來的呢?可以看上個請求url地址
4.也就是說儲存草稿箱成功之後,重定向一個url地址,裡面帶有postId這個引數。那接下來我們提取出來就可以了
二、提取引數
1.我們需要的引數postId是在儲存成功後url地址,這時候從url地址提出對應的引數值就行了,先獲取儲存成功後url
2.通過正則提取需要的字串,這個引數值前面(postid=)和後面(&)字串都是固定的
3.這裡正則提出來的是list型別,取第一個值就可以是字串了(注意:每次儲存需要修改內容,不能重複)
三,傳參
1.刪除草稿箱的json引數傳上面取到的引數:{"postId": postid[0]}
2.json資料型別post裡面填json就行,會自動轉json
3.接著前面的儲存草稿箱操作,就可以刪除成功了
四、參考程式碼
(敲黑板!!!由於部落格園的登入機制變了,後面所有的登入地方全部用cookie登入)
# coding:utf-8
import requests
# 先開啟登入首頁,獲取部分cookie
url = "https://passport.cnblogs.com/user/signin"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
} # get方法其它加個ser-Agent就可以了
s = requests.session()
r = s.get(url, headers=headers,verify=False)
print s.cookies
# 新增登入需要的兩個cookie
c = requests.cookies.RequestsCookieJar()
c.set('.CNBlogsCookie', '這裡是抓到的') # 填上面抓包內容
c.set('.Cnblogs.AspNetCore.Cookies','這裡是抓到的') # 填上面抓包內容
c.set('AlwaysCreateItemsAsActive',"True")
c.set('AdminCookieAlwaysExpandAdvanced',"True")
s.cookies.update(c)
print s.cookies
# -----------登入全部走cookie登入---
# 第二步:儲存草稿
url2 = "https://i.cnblogs.com/EditPosts.aspx?opt=1"
body = {"__VIEWSTATE": "",
"__VIEWSTATEGENERATOR":"FE27D343",
"Editor$Edit$txbTitle":"這是3111",
"Editor$Edit$EditorBody":"<p>這裡111:http://www.cnblogs.com/yoyoketang/</p>",
"Editor$Edit$Advanced$ckbPublished":"on",
"Editor$Edit$Advanced$chkDisplayHomePage":"on",
"Editor$Edit$Advanced$chkComments":"on",
"Editor$Edit$Advanced$chkMainSyndication":"on",
"Editor$Edit$Advanced$txbEntryName":"",
"Editor$Edit$Advanced$txbExcerpt":"",
"Editor$Edit$Advanced$tbEnryPassword":"",
"Editor$Edit$lkbDraft":"存為草稿",
}
r2 = s.post(url2, data=body, verify=False)
# 獲取當前url地址
print r2.url
# 第三步:正則提取需要的引數值
import re
postid = re.findall(r"postid=(.+?)&", r2.url)
print postid # 這裡是list
# 提取為字串
print postid[0]
# 第四步:刪除草稿箱
url3 = "https://i.cnblogs.com/post/delete"
json3 = {"postId": postid[0]}
r3 = s.post(url3, json=json3, verify=False)
print r3.json()
相關推薦
python介面自動化7-引數關聯
前言 我們用自動化發帖之後,要想接著對這篇帖子操作,那就需要用引數關聯了,發帖之後會有一個帖子的id,獲取到這個id,繼續操作傳這個帖子id就可以了 (部落格園的登入機制已經變了,不能用賬號和密碼登入了,換個網站,或者用cookie登入吧) 一、刪除草稿箱 1.我們前面講
python 介面自動化 excel引數化封裝
1、定義config 檔案 裡面定義全域性用的引數, 比如下面用到的 excel 的地址資訊。 config定義如下 # !/usr/bin/python3 # -*- coding: utf-8 -*- import os # 路徑配置;專案的路徑 BASE
python介面自動化(三十四)-封裝與呼叫--函式和引數化(詳解)
簡介 前面雖然實現了引數的關聯,但是那種只是記流水賬的完成功能,不便於維護,也沒什麼可讀性,隨著水平和技能的提升,再返回頭去看前邊寫的程式碼,簡直是慘不忍睹那樣的程式碼是初級入門的程式碼水平都達不到。接下來這篇由我帶領小夥伴們把每一 個滑鼠點選動作寫成一個函式,這樣更方便維護了,而且可讀性也高,後期其
python介面自動化(三十五)-封裝與呼叫--流程類介面關聯(詳解)
簡介 流程相關的介面,主要用 session 關聯,如果寫成函式(如上篇),s 引數每個函式都要帶,每個函式多個引數,這時候封裝成類會更方便。在這裡我們還是以部落格園為例,帶著小夥伴們實踐一下。 介面封裝大致流程 1、在介面測試中,有些介面經常會被用到比如登入的介面,這時候我們可以每個介面都封裝成一
python介面自動化(三十六)-封裝與呼叫--流程類介面關聯續集(詳解)
簡介 上一篇已經給大家都介紹過了流程類介面關聯,但是由於部落格的登入機制改變,所以沒有辦法給小夥伴們實戰演練一下,那麼這篇就按照上一篇計劃的用jenkins來給小夥伴們演示一下流程類介面的封裝和呼叫,其實很簡單,就是用上一篇和前邊這篇傳送門的程式碼稍 稍修改即可。不知道你自己練習了麼,如果
python介面自動化(四十一)- 發xml格式引數的post請求(超詳解)
簡介 最近在工作中,遇到一種奇葩的介面,它的引數資料是通過xml,進行傳遞的,不要大驚小怪的,林子大了什麼鳥都有,每個人的思路想法不一樣,開發的介面也是各式各樣的,如果想要統一的話,必須是提前團隊已經做好溝通定好規則,這樣就像在產品線上生成一 樣規格大小一致。就不會出現前邊的問題了,如果出現了怎麼辦?
【python介面自動化】- 正則用例引數化
我們在做介面自動化的時候,處理介面依賴的相關資料時,通常會使用正則表示式來進行提取相關的資料。 正則表示式,又稱正規表示式、正規表示法、正規表示式、規則表示式、常規表示法(Regular Expression,在程式碼中常簡寫為regex、regexp或RE) 。它是一個特殊的字元序列,它能幫助
【python介面自動化-requests庫】【一】requests庫安裝
1.概念 requests 是用Python語言編寫,基於 urllib,採用 Apache2 Licensed 開源協議的 HTTP 庫。它比 urllib 更加方便,可以節約我們大量的工作,完全滿足 HTTP 測試需求。 2.安裝 2.1 通過pip安裝 ->開啟命令列,wind
python - 介面自動化 - http請求
# -*- coding:utf-8 -*-'''@project: jiaxy@author: Jimmy@file: study_介面測試基礎知識一.py@ide: PyCharm Community Edition@time: 2018-11-27 09:07@blog: https://www.cnb
python介面自動化測試框架(post提交新增變數)
1、python介面測試框架包含哪幾部分 資料來源-> GET/POST 傳送請求->接收返回結果->斷言測試結果->生成測試報告(html報告)->網頁報告 2、python介面測試框架 config:存放配置檔案,比如資料庫設定、郵件配置、log配置
python - 介面自動化測試實戰 - case1 - 再次優化版
本次優化: 1. 各級分Package 2. 封裝【ReadExcel】類 3. 封裝【ReadConfig】類 4. 封裝【GetLog】類 5. 引入ddt資料驅動測試,優化測試用例程式碼 &nbs
基於python介面自動化框架搭建_pytest+jenkins+allure
本介面測試框架使用python語言實現,基於pytest測試框架,同時整合Jenkins和Allure 核心特性 封裝requests請求,使用裝飾器模式 詳細的請求日誌輸出 環境與資料隔離,實現不同環境不同資料 測試用例支援引數化和資料驅動機制 使用allur
Python介面自動化測試之檔案上傳
在介面測試中,經常會涉及到檔案上傳,檔案上傳一般包含的檔案是圖片,視訊以及如csv,excel,記事本等檔案,它的請求頭中Content-Type對應的value值是multipart/form-data,這裡依據實際的案例來說明檔案上傳的具體案例。這裡以網際網路產品人人網
python介面自動化學習之路(4)
較上一個版本優化的內容為: 1.迴圈讀取excel裡的case 2.將響應結果寫入一個新的excel import requests import xlrd import json import xlutils import xlwt import time exce
python - 介面自動化測試 - HttpRequest - 介面測試類封裝
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: http_request.py @ide: PyCharm Community Edition @time: 2018-12-20 11:38 @blog: h
python介面自動化1-傳送get請求 request
https://www.cnblogs.com/yoyoketang/p/6810643.html 準備工作: 1、下載python安裝。 https://www.python.org/downloads/release/python-351/
python介面自動化--Excel
1.操作步驟: (1)安裝python官方Excel庫-->xlrd (2)獲取Excel檔案位置並讀取 (3)讀取sheet (4)讀取指定rows和cols內容 2.示例程式碼 # -*- coding: utf-8 -*- import xlrd from
python - 介面自動化測試 - TestRecharge - 充值介面測試用例
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: test_recharge.py @ide: PyCharm Community Edition @time: 2018-12-27 10:
python - 介面自動化測試 - TestRegister - 註冊介面測試用例
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: test_register.py @ide: PyCharm Community Edition @time: 2018-12-28 15:
python - 介面自動化測試 - TestLogin - 登入介面測試用例
# -*- coding:utf-8 -*- ''' @project: ApiAutoTest @author: Jimmy @file: test_login.py @ide: PyCharm Community Edition @time: 2018-12-22 09:33