接口測試腳本

"""
流程:爬蟲爬取wiki中的接口文檔--->針對爬取數(shù)據(jù)進行接口測試--->生成測試報告
"""
author = ' Blokks '

import requests
from bs4 import BeautifulSoup
import json
import time

class InterfaceTesting(object):

def init(self):
pass

def get_APIdata_from_wiki(self):
"""
獲取confluence上的API文檔數(shù)據(jù):獲得結(jié)果為一個列表其中每個子列表結(jié)構(gòu)為[api_id,api_name,api_method,api_url,api_data,api_response]
"""
url = "http://112.74.196.215:8090/dologin.action"#文檔管理工具的登錄地址

  login_data = {
     'os_username': 'tangzhiliang',
     'os_password': 'welcome123',
     'login': '登錄'
  }#登錄賬號密碼

  res = requests.post(url=url, data=login_data)#發(fā)起請求進行登錄
  cookies_ = res.cookies#獲取登錄后的cookies

  session = requests.Session()#構(gòu)建session用于保存cookie等信息
  session.cookies = cookies_
  session.cookies.set('confluence-sidebar.width', '285')#將上一步獲得的cookie添加進session

  url_to_API = "http://112.74.196.215:8090/display/Tech2/API+Test+Case"#API文檔的保存頁面
  res_ = session.get(url_to_API)#發(fā)起請求
  page_return = res_.text
  soup = BeautifulSoup(page_return)#使用beautifulsoup對獲取的頁面html結(jié)構(gòu)進行處理
  td_tags = soup.find_all('td', class_='confluenceTd')#使用beautifulsoup庫獲取所有的td標(biāo)簽
  API_data = []
  for i in range(0, len(td_tags), 4):
     each_row = []
     for j in range(0, 4):
        try:
           each_row.append(td_tags[i + j].text)#每4個td標(biāo)簽進行循環(huán)獲取td標(biāo)簽內(nèi)容并添加進列表
        except:
           pass
     API_data.append(each_row)
  for i in API_data:
     print(i)
  return API_data#所有列表存進最終保存數(shù)據(jù)列表中

def run_API_test(self):
all_data = self.get_APIdata_from_wiki()
all_result = []
for i in all_data:#遍歷所有獲取的接口文檔數(shù)據(jù)耿币,一次進行接口測試
r = self.single_API_test(i[2],i[3],i[4],i[5])
if r == 0:
all_result.append([i[1],'pass'])
else:
all_result.append([i[1],'fail'])
return all_result#返回所有接口測試的結(jié)果

def single_API_test(self,url,request_type,request_data,expected_output):#當(dāng)個API的測試
header_ = {'Apikey': 'T2-PROD-DC67B679-A032-4AC3-BD5A-D5EC571AAF86',
'Cookie': 'guest_id=1501952081; stat_passport=491501%0915818650780%09u3251183456449',
'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/63.0.3239.132 Safari/537.36'"}
if request_type == 'GET':#判斷請求類型使用不同的請求方式
output = requests.get(url,params=request_data,headers=header_)
elif request_type == 'POST':
output = requests.post(url,patams=request_data,headers=header_)
else:
raise Exception('request type error,must be GET or POST')
flag = 0
for k, w in json.loads(output).items():#將接口返回數(shù)據(jù)與接口文檔中國的數(shù)據(jù)進行比較
if output[k] == expected_output[k]:
pass
else:
flag += 1
return flag#通過返回為0,為其他數(shù)值時不通過

def format_test_report(self):
test_result = self.run_API_test()
pass_case = 0
fail_case = 0
all_case = len(test_result)
for i in test_result:
if i[1] == 'pass':
pass_case += 1
else:
fail_case += 1
"""
這里構(gòu)造接口測試報告拗窃,還在設(shè)計頁面
"""

if name == 'main':
start_time = int(time.time())
while True:
mid_time = int(time.time())
if (mid_time - start_time)%120 == 0:#每兩分鐘跑一次腳本
api_test =InterfaceTesting()
api_test.format_test_report()
else:
pass

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苔埋,一起剝皮案震驚了整個濱河市呼猪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌摘昌,老刑警劉巖涕俗,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異椎眯,居然都是意外死亡挠将,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門编整,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舔稀,“玉大人,你說我怎么就攤上這事掌测∧谥” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵汞斧,是天一觀的道長夜郁。 經(jīng)常有香客問我,道長粘勒,這世上最難降的妖魔是什么竞端? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮庙睡,結(jié)果婚禮上事富,老公的妹妹穿的比我還像新娘。我一直安慰自己乘陪,他們只是感情好统台,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著啡邑,像睡著了一般贱勃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天募寨,我揣著相機與錄音族展,去河邊找鬼。 笑死拔鹰,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贵涵。 我是一名探鬼主播列肢,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宾茂!你這毒婦竟也來了瓷马?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤跨晴,失蹤者是張志新(化名)和其女友劉穎欧聘,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體端盆,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡怀骤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了焕妙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒋伦。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖焚鹊,靈堂內(nèi)的尸體忽然破棺而出痕届,到底是詐尸還是另有隱情,我是刑警寧澤末患,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布研叫,位于F島的核電站,受9級特大地震影響璧针,放射性物質(zhì)發(fā)生泄漏嚷炉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一陈莽、第九天 我趴在偏房一處隱蔽的房頂上張望渤昌。 院中可真熱鬧,春花似錦走搁、人聲如沸独柑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忌栅。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間索绪,已是汗流浹背湖员。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瑞驱,地道東北人娘摔。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像唤反,于是被迫代替她去往敵國和親凳寺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理彤侍,服務(wù)發(fā)現(xiàn)肠缨,斷路器,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • 1.POST請求: # -*-coding:utf-8 -*— import requests import js...
    shirely大丫頭閱讀 731評論 0 1
  • 秋潮夜落空江渚盏阶,晚樹離離含宿雨晒奕。 伊軋中流聞擼聲,臥聽漁人隔煙語名斟。 春入山禽語脑慧,茆亭綠樹齊。 幽人拾野興蒸眠,策杖板橋西漾橙。
    知一書齋閱讀 402評論 1 5
  • 父類:NSObject 提供獲取或生成預(yù)覽縮略圖和全尺寸圖片,或者視頻數(shù)據(jù)的方法楞卡。 一霜运、概述 使用這些方法來獲取全...
    Shmily落墨閱讀 10,523評論 5 6
  • 有友旅日歸,攜一“秦權(quán)”紫砂壺蒋腮。 細觀之:其壺豬肝紫色淘捡,狀若秦時統(tǒng)一度量衡之“權(quán)”,就是秤砣池摧。容量較大...
    dxchem閱讀 285評論 3 5