1. 程式人生 > >使用pytest+requests進行介面測試實踐——測試post請求

使用pytest+requests進行介面測試實踐——測試post請求

還是以Jenkins介面測試為例,Jenkins提供了“禁用”和“啟用”job的介面,這個介面的方法是POST方法。我們就以這個介面為例。

我們先點選任何一個job,比如“PythonRun”這個job,在開啟的頁面右下角REST API,在開啟的頁面中檢視提供的介面。我們可以發現這裡有個“Disable/Enable a job”的介面:


點選“this URL”,檢視介面:

“禁用”:http://localhost:8080/job/PythonRun/disable

“啟用”:http://localhost:8080/job/PythonRun/enable

還用到需要檢視job狀態的介面,點選頁面上的:


檢視job資訊介面:http://localhost:8080/job/PythonRun/api/json

測試思路:

首先呼叫介面檢視job的狀態,如果job狀態是“啟用”,則呼叫Disable job的介面,之後再檢視一次job狀態,然後斷言該job是“禁用”狀態。

如果開始是禁用狀態,則呼叫Enable job的介面,之後再檢視一次job狀態,然後斷言該job是“啟用”狀態。

測試指令碼:

import requests
import pytest


class JK(object):
    def __init__(self):
        self.disable_url = "http://localhost:8080/job/PythonRun/disable"
        self.enable_url = "http://localhost:8080/job/PythonRun/enable"
        self.job_url = "http://localhost:8080/job/PythonRun/api/json"


class TestJenkins(object):
    """
    Test get a list of jobs from jenkins
    """
    @pytest.fixture(scope="module")
    def jk(self):
        return JK()

    def test_disable_job(self, jk):
        r = requests.post(jk.enable_url)
        assert r.status_code == 200
        requests.post(jk.disable_url)
        r = requests.get(jk.job_url)
        buildable = r.json()['buildable']
        assert buildable is False

    def test_enable_job(self, jk):
        r = requests.post(jk.disable_url)
        assert r.status_code == 200
        requests.post(jk.enable_url)
        r = requests.get(jk.job_url)
        buildable = r.json()['buildable']
        assert buildable is True

 執行測試:

C:\Users\liu.chunming\Desktop>py.test test_report.py --html=.\log.html

檢視測試報告:

指令碼分析:

1、我們將Jenkins提供的介面放到JK類中集中管理

2、定義一個TestJenkins類用來測試jenkins介面,因為我們用pytest測試框架,所以這個類以test開頭;

3、測試類中,利用pytest的fixture機制頂一個jk方法,該方法在該測試模組執行前執行,返回一個JK類的物件

4、測試類中,寫了兩個測試樣例,都是用test開頭的,一個是test_disable_job,一個是test_enable_job

5、test_disable_job測試樣例中,首先呼叫enbale job的介面,並且斷言介面呼叫成功,接著呼叫disable job的介面,然後獲取job狀態的介面獲取buildable欄位,如果是false代表,通過disable job介面已經成功將job禁用了。

6、test_enable_job測試樣例中,首先呼叫disable job介面,並且斷言介面呼叫成功,接著呼叫enbale job介面,然後通過獲取job狀態的介面獲取buildable欄位,如果是true則代表通過enable job介面已經成功將job啟用了。

相關推薦

使用pytest+requests進行介面測試實踐——測試post請求

還是以Jenkins介面測試為例,Jenkins提供了“禁用”和“啟用”job的介面,這個介面的方法是POST方法。我們就以這個介面為例。 我們先點選任何一個job,比如“PythonRun”這個job,在開啟的頁面右下角REST API,在開啟的頁面中檢視提供的介面。我們

1225JMeter、Postman、Requests介面測試經驗分享-POST請求(三)

上傳檔案的請求是真實公司的介面;所以內容打了馬賽克,希望能夠理解。 (一)POST請求-multipart/form-data 此次分享主要講的是Content-Type設定為application/form-data的POST請求,即以表單檔案上傳的形式提交的post請求。 因為手

1224JMeter、Postman、Requests介面測試經驗分享-POST請求(二)

此篇分享,獻給我既愛又恨的自家公司的介面。在自學介面自動化測試中,這個Json引數格式的post請求,我爬了整整4天的坑,害的我中間過週末也頭大。【這部分後面會分享】 (一)POST請求-application/json 此次分享主要講的是Content-Type設定為applica

1224JMeter、Postman、Requests介面測試經驗分享-POST請求(一)

在分享這篇部落格前,吐槽下最近爬過的坑:你們是和我有仇嗎?是不是折磨我這個小白有快感? 因為是自學,也沒人帶,所以很簡單很基礎的事情,就得多看幾次;實踐時,體會多次【爬很久的坑】,才能用清楚,搞明白。爬坑雖然不爽,但爬過後會很喜悅。 (一)POST請求-application/x-www

python request 接口測試get和post請求

.post .get access username int 用戶 post請求 運行 開發 開發IDE:pycharm python:2.7.10 get請求 # coding: UTF-8 #兼容中文字符,如果沒有這句,程序中有中文字符時,運行會報錯import

介面自動化之requests學習(三)--傳送post請求

想要用requests方法呼叫post請求,首先我們要有一個post介面,我們選擇人人網登入介面來練習 1.開啟人人網的登入頁面,獲取登入的url及傳送的引數 2.獲取到登入介面url及引數後,編寫程式碼 #!usr/bin/env python #-*- codi

使用apache ab命令壓力測試時傳送post請求

測試環境:bugfree 3,0.1的登陸頁面 ab 命令引數說明: -n   傳送請求的數量 -c   同一時刻模擬使用者的數量 -s   每個響應的最長等待時間  預設是30秒 -k     -p   傳送post請求引數存放的檔案  (使用此選項的時候一定要加上-T引

HttpClient請求服務端介面資料Get與Post請求

public static void main(String[] args) { //String url = "http://10.3.1.32/proxy_services/MDMConsumerProxyService"; String url = "http

requests: 傳送一個json格式的post請求

今天給一位同學解決post傳送資料格式為json格式的請求,順便確認一下問題歸屬。 背景: 用postman工具傳送一個數據格式為json的請求,得到了伺服器的響應。 用python的requests庫寫的請求,卻報錯了。沒有得到該有的結果。 解決方法: 1)先確認自己的請求資訊和函式使用正確。包括請求頭、請

C#如何進行https的GET與POST請求以及照片上傳

針對HTTPS的請求我們需要額外處理一下證書,廢話不多少直接程式碼貼給大家! using System; using System.Collections.Generic; using System.Linq; using System.Text; using System

支付寶即時到賬介面,非同步回撥post請求的接受,Jersey 處理post引數的方法

/** * 支付寶非同步回撥處理 * * @author simon * @date 2016/3/24 * */ @POST @Pa

java 介面自動化之簡單post請求

我們把上一篇沒說的補上。做介面呢首先要有http協議的基礎。大家請自行學習。不過後續我也會介紹的。那麼下面是今天的內容。那麼我們今天來看一下post public static void htpost(

使用Python的requests進行介面測試——session物件的妙用

在進行介面測試的時候,我們會呼叫多個介面發出多個請求,在這些請求中有時候需要保持一些共用的資料,例如cookies資訊。妙用1requests庫的session物件能夠幫我們跨請求保持某些引數,也會在同一個session例項發出的所有請求之間保持cookies。舉個栗子,跨請

Python接口測試-使用requests模塊發送post請求

pan files show code post connect ear url sts 本篇主要記錄下使用python的requests模塊發送post請求的實現代碼. #coding=utf-8 import unittest import requests c

學習總結—JMeter實現web介面測試實踐舉例

測試專案: 本地搭建的jforum專案 測試內容: 登入:通過賬號密碼登入,並驗證是否登入成功; 進入板塊:實現動態獲取板塊資訊,驗證是否能正確進入板塊; 發帖:實現不同板塊隨機發帖,驗證是否發帖成功;   一、登入驗證 第一步,開啟JMeter 圖1 新建

robotframework 學習(2) :使用RIDE進行介面測試之傳送請求和接收資料斷言

一、RIDE的介紹:         RIDE是robotframework圖形操作前端,也可以理解為一種編輯器,它以cell的形式來進行定義資料和方法,返回結果等,我們可以使用它進行建立測試用例和編寫測試指令碼,並且執行自動化測試。  

python介面測試-認識POST請求

上午和一個大神交流了一下,給我了一點建議:多做筆記,勤覆盤;及時記錄自己,最好的提升不是來自於別人,而是來自於自身。我覺得挺有道理的,分享出來。共勉 說正事。 今天把post請求的大概內容看了一下。雖然都是post請求,但是還是分類的。看下邊。。   一、POST請求,有請求引數params

java介面自動化3——POST請求方法封裝過程和測試

這個介面自動化測試框架到目前為止,我們已經完成了Get請求的封裝和必要的工具類的支援。接下來這篇,我來介紹如何完成POST請求的封裝過程。一般來說,在一個專案中,介面測試很多時候就是測試Get和POST方法,其他的請求方式的介面很少,佔的比重幾乎不計。所以,這個Java介面自動化測試框架的核心就是G

介面測試實踐

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

使用 EOLINKER 進行介面測試的最佳路徑 (下)

本文為 《使用 EOLINKER 進行介面測試的最佳路徑》 下半部分文章,主要介紹測試指令碼如何執行和報告生成,以及測試專案人員如何協作。還沒看過上篇文章請戳 使用 EOLINKER 進行介面測試的最佳路徑(上) 本文內容 測試指令碼執行及報告:講述如何在 EOLINKER 上執行介面測試指令碼,及