1. 程式人生 > >python 介面自動化測試(四)

python 介面自動化測試(四)

說完了SOAP協議的介面自動化

該說下http協議的介面測試了

HttpService.py

import requests
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )



class HttpService():
    def __init__(self,host,url):
        self.host=host
        self.url=url

    def httpReq(self,params,method="POST"):
        requesturl=self.host+self.url
        if(method == "POST"):
            resp_data=requests.post(requesturl,params)
        else:
            resp_data=requests.get(requesturl)
        resp=resp_data.text
        return resp

這是http請求的實現類,運用了requests模組

之後就是在具體的執行檔案中呼叫上面的HttpService.py

在RunMain.py中新增方法:

def runHttpTest(ip,list,serviceClass):
    length=len(list)
    #實現控制檯輸出執行進度
    widgets = [ip+' Progress: ', Percentage(), ' ', Bar(marker=RotatingMarker('>')),
      ' ', ETA()]
    pbar = ProgressBar(widgets=widgets, maxval=length).start()
    for i in range(length):
        pbar.update(i+1)
        try:
            #例項化類的物件
            runhttptest = serviceClass(ip,str(list[i][0]))
            if(str(list[i][2]) == "GET"): #判斷http請求的方法
                test_rep=runhttptest.httpReq(None,"GET")
                DataEngine.httpGetResultCheck(test_rep,xlw,list,i) #返回結果判斷
            else:
                dict=eval(str(list[i][2]))
                test_rep=runhttptest.httpReq(dict)
                DataEngine.httpResultCheck(test_rep,xlw,list,i)

        except Exception,e:
            print(str(list[i][1])+"\t"+str(e))
            Logging.writeException(e)
    pbar.finish()

由於介面返回結果和SOAP介面的返回結果型別不一致,所以DataEngine.py中的結果處理方法就要做一些擴充套件,由於時間關係,我這邊就直接另寫了兩個方法進行結果斷言處理
def httpResultCheck(test_rep,xlw,list,xls_row):
    global COUNT_ROWs
    result=test_rep.find(',"status":1',22)
    if(result != -1):
        xlw.write_HttpResult(COUNT_ROWs,list,xls_row,True)
        COUNT_ROWs=COUNT_ROWs+1
    else:
        Logging.writeHttpLog(str(list[xls_row][1]),str(test_rep))
        xlw.write_HttpResult(COUNT_ROWs,list,xls_row,False)
        COUNT_ROWs=COUNT_ROWs+1

def httpGetResultCheck(test_rep,xlw,list,xls_row):
    global COUNT_ROWs
    test_rep=json.loads(test_rep)
    result=test_rep['status']
    if(result == 1):
        xlw.write_HttpResult(COUNT_ROWs,list,xls_row,True)
        COUNT_ROWs=COUNT_ROWs+1
    else:
        Logging.writeHttpLog(str(list[xls_row][1]),str(test_rep))
        xlw.write_HttpResult(COUNT_ROWs,list,xls_row,False)
        COUNT_ROWs=COUNT_ROWs+1

以上就是所有的程式碼新增:

執行後結果輸出見下圖:

其中執行失敗的用例,會以紅色醒目標識出來,並在其後輸出具體的中文用例描述



相關推薦

python 介面自動化測試

說完了SOAP協議的介面自動化 該說下http協議的介面測試了 HttpService.py import requests import sys reload(sys) sys.setdefaultencoding( "utf-8" ) class HttpServ

python介面自動化測試

本節開始,開始介紹python的介面自動化測試,首先需要搭建python開發環境,到https://www.python.org/下載python 版本直接安裝就以了,建議 下載python2.7.11版本,當然,也是可以下載python最新版本的。        介

基於Python介面自動化測試抓包工具Fiddler

常見的抓包工具1. Fiddler:Fiddler是一款免費且功能強大的資料包抓取軟體,主要用於抓取HTTP/HTTPS協議,簡單易用目前主流的版本是Fiddler4,最新版本已經到了Fiddler5。2. Charles:這是一款在Mac下常用的抓包工具。3. Wiresh

python自動化測試pytest的使用

可能大家在做python自動化過程中,用的比較多的是unittest,今天小編給大家講講如何使用pytest做我們的單元測試,生成一個美麗的報告。在使用pytest之前,我們首先需要下載安裝它。一般我們有兩種途徑:1、下載pytest安裝包,解壓後cd到pytest中setu

Python 接口測試

數列 格式 dumps code 輸出 pre weather 標準 lang 五:python數列化和反序列化 把python的對象編碼轉換為json格式的字符串,反序列化可以理解為:把json格式 字符串解碼為python數據對象。在python的標準庫中,專門提供了j

UI自動化測試AutoIT工具使用和robot對象模擬鍵盤按鍵操作

rop 並保存 cto 右鍵 自動化測試 nqa files 安裝 存在 AutoIT簡介 AutoIt 目前最新是v3版本,這是一個使用類似BASIC腳本語言的免費軟件,它設計用於Windows GUI(圖形用戶界面)中進行自動化操作。它利用模擬鍵盤按鍵,鼠標移動和窗口/

介面自動化測試1-認識requests

即使開始寫這篇部落格,我也沒完全明白介面自動化到底是何物,能自動化到什麼地步。買了一套相關課程,開始只是入門級,介面自動化測試後面應該會根據課程進度,把這系列部落格寫完。今天先寫入門。 環境:python3 環境準備好以後,安裝requests,cmd下輸入命令:pip

介面自動化測試4-介面測試

標題想不出來寫什麼好,請見諒。 前面兩篇都是準備工作,這篇要用到前面兩篇,當然再後面還會用到這一篇,這個.py檔名叫testvote,下一篇會呼叫這個模組。直接上程式碼。 import xlrd from TestRequest import * from testdat

Appium自動化測試之 常見錯誤

在appium實踐中,會出現各種問題: 1. 初始化driver錯誤 最新版的appium(java-client-5.0.4)呼叫 driver時,請注意語法:AndroidDriver< T> driver=new AndroidDriver< T&g

jmter介面自動化測試

Jmter介面自動化測試(一) 什麼是介面自動化測試 介面測試是測試系統元件間介面的一種測試。介面測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的互動點。測試的重點是要檢查資料的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。 在這

soapui介面效能測試---- 輸出報告和統計

好的,您已經運行了LoadTest,現在需要建立一些報告或匯出收集的資料以進行更詳細的分析。有幾個選項可供您使用,我們將按順序檢視: 匯出統計表的資料(僅限開源)。從統計圖匯出資料。在測試執行時連續匯出資料。建立可列印報告或將基礎報告資料匯出到XML或CSV檔案(Load

Dubbo介面自動化測試--直連服務提供者

在做測試環境Dubbo介面測試的過程中,通過點對點的方式直連provider是非常方便的,點對點的意思就是我們跳過zookeeper註冊中心,直接連線服務並消費。因為服務正常啟動的情況下,我們只需要寫consumer即可。 consumer.xml檔案如下

介面自動化測試3-資料準備

第二篇提到了介面自動化大概意思:從excel自動讀引數和預期結果,做介面測試並斷言,生成excel測試報告。這篇寫一下excel裡面怎麼寫,並且用程式碼找到檔案,怎麼讀內容。具體讀出來怎麼用放下一篇繼續寫。 先看excel裡面,介面我用的還是京東永珍的介面,一個免費的天氣預

python介面自動化實戰框架

     python介面測試的原理,就不解釋了,百度一大堆。    先看目錄,可能這個框架比較簡單,但是麻雀雖小五臟俱全。各個資料夾下的檔案如下:一.理清思路    我這個自動化框架要實現什麼    1.從excel裡面提取測試用例    2.測試報告的輸出,並且測試報告得

[Android自動化測試] robot framework+appium元素定位

檢視工具:Android sdk目錄/tools/uiautomatorviewer.bat,新版的在Android sdk目錄\tools\bin下面 示例圖: 如果需要定位紅框中的按鈕並點選,有如下方式(注意,點選之前一般需要等待控制元件可見的時候,

python介面自動化測試框架post提交新增變數

1、python介面測試框架包含哪幾部分 資料來源-> GET/POST 傳送請求->接收返回結果->斷言測試結果->生成測試報告(html報告)->網頁報告   2、python介面測試框架 config:存放配置檔案,比如資料庫設定、郵件配置、log配置

python 介面自動化測試--程式碼實現

用例讀入資料庫: #! /usr/bin/python # coding:utf-8 import sys,os from Engine import DataEngine reload(sys) sys.setdefaultencoding( "utf-8") fro

python 介面自動化測試--程式碼實現

資料庫還原指令碼: #! /usr/bin/python # coding:utf-8 import time from Engine.SqlEngine import MSSQL COUNT=1 def restoreRelease(): global COUNT

python結合excel數據輕松實現接口自動化測試

判斷 原因 一個 軟件測試 測試 相等 fin 完成 想去 在剛剛進入測試行業的時候,最開始也是做功能測試,我想很多夥伴和我一樣,覺得自動化測試都很高端,很神秘。迫不及待的想去學習作自動化測試。 以前比較常用數據庫+python做自動化,後面發現excel個人覺得更加適合,

selenium+python自動化測試環境

get gre gpo exe ren 瀏覽器版本 art lap close python裝的是3.5,chrome瀏覽器版本是17年初的 1.chromedriver 在http://chromedriver.storage.googleapis.com/index.h