1. 程式人生 > >jMeter介面測試-一個簡單http介面的測試案例

jMeter介面測試-一個簡單http介面的測試案例

注:

1)複雜的測試案例都是在這個簡單的測試案例上進行擴充套件

2)一個子系統建議放在同一個測試計劃中,流程測試可以通過執行緒組區分,便於設定不同的測試資料個數。比較獨立的介面,可以統一放線上程組內,順序完成測試。

3)流程性介面測試:如果要測試的介面可以組成一個流程,執行順序新增多個http請求的sampler,各請求之間可以提取需要在上下文傳遞的資料作為引數,以保證流程中資料的一致性。

1. 開發介面測試案例的整體方案:

第一步:分析出測試需求,拿到開發提供的介面說明文件;

第二步:從介面說明文件中設計介面測試用例,包括詳細的入參、出引數據,以及明確的格式和檢查點。

第三步:和開發一起評審介面測試用例

第四步:結合開發庫,準備介面測試案例中的入引數據和出引數據,並整理成csv格式的檔案。

第五步:結合介面測試用例和csv格式的資料文件,做介面自動化開發。

2. 介面自動化適用場景

    1)測試開發介面用例,開發自測

    2)迴歸測試:開發自測通過後納入迴歸測試中,配置到持續整合平臺自動執行。

3. jMeter工具設計之初是用於效能測試的,它在實現對介面的呼叫方面已經做的比較成熟,本次使用jMeter工具實現http介面的測試。

1)開啟jMeter:下載好jMeter後,雙擊bin目錄下的jmeter.bat


2)新增執行緒組(測試計劃右鍵-新增-Threads(Users)):

執行緒組主要包含三個引數:執行緒數、準備時長(Ramp-Up Period(in seconds))、迴圈次數。

執行緒數:虛擬使用者數。一個虛擬使用者佔用一個程序或執行緒。設定多少虛擬使用者數在這裡也就是設定多少個執行緒數。

準備時長: 設定的虛擬使用者數需要多長時間全部啟動。如果執行緒數為20 ,準備時長為10 ,那麼需要10秒鐘啟動20個執行緒。也就是每秒鐘啟動2個執行緒。

迴圈次數:每個執行緒傳送請求的次數。如果執行緒數為20 ,迴圈次數為100 ,那麼每個執行緒傳送100次請求。總請求數為20*100=2000 。如果勾選了“永遠”,那麼所有執行緒會一直髮送請求,一直到選擇停止執行指令碼。


3)新增http cookie管理器(執行緒組右鍵-新增-配置元件):


4)新增HTTP請求預設值(執行緒組右鍵-新增-配置元件):當被測系統有唯一的訪問域名和埠時,此元件很好用;填寫被測系統的域名和埠,以及具體的協議型別。執行緒組裡面的所有sampler的http request可預設此設定。



5)新增http Request(執行緒組右鍵-新增-Sampler):對於jMeter而言,sampler取樣器是與伺服器互動的單元,一個取樣器通常進行三部分的工作,向伺服器傳送請求;記錄伺服器的響應資料;記錄相應時間資訊。

一個HTTP請求的配置引數介紹如下:

名稱:標識一個取樣器,一般建議適用有意義的名字,如介面名稱。

註釋:僅使用者記錄註釋資訊。

伺服器名稱或IP:HTTP請求傳送的目標伺服器名稱和IP地址,可以取使用者定義的變數$(host)

埠:目標伺服器埠號,可以取使用者定義的變數$(port)

協議:向目標伺服器傳送的HTTP請求時的協議,可以是http(預設)或https

方法:傳送HTTP請求的方法,包括GET,POST,HEAD,PUT,OPTIONS,TRACE,DELETE等

Content encoding:內容編碼方式,預設iso8859,可以設定UTF-8

路徑:目標URL路徑(不含伺服器地址和埠)



6)新增響應斷言(被測http request右鍵-新增-斷言):設定檢查點,新增對響應結果的正則表示式判斷即可。



7)新增監聽器(執行緒組右鍵-新增-監聽器):常用圖形結果、檢視結果樹、聚合報告,方便檢視執行後的結果。



檢視結果樹:可以定義返回結果的排版,如果JSON格式。


檢視聚合報告:

Label:顯示jMeter的每個element(如,http request)都有一個Name屬性

#Samples:表示這次測試中一共發出了多少請求,如模擬10個使用者,每個使用者迴圈10次,這裡就顯示100

Average:平均響應時間--預設情況下是單個request的平均響應時間,當使用了Transaction controller時也可以以Transaction為單位顯示平均響應時間。

Median:中位數,也就是50%使用者的響應時間

90% Line:90%使用者的響應時間。

注:關於90%和50%的併發使用者數的含義可參考:http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html

Min:最小響應時間

Max:最大響應時間

Error%:本次測試出現的錯誤的請求數量/請求的總數

Throughtput:吞吐量---預設情況下表示每秒的請求數(Request per second),當使用了Transaction Controller時,可以表示類似Loadrunner的Transaction per second數。

KB/Sec:每秒從伺服器接收到的資料量,相當於Loadrunner中的Throughtput/Sec


8)新增使用者定義的變數(測試計劃右鍵-新增-配置元件)

可以新增測試伺服器的IP地址${_P(host,192.168.1.12)}和埠${_P(port,8080)}


相關推薦

jMeter介面測試-一個簡單http介面測試案例

注:1)複雜的測試案例都是在這個簡單的測試案例上進行擴充套件2)一個子系統建議放在同一個測試計劃中,流程測試可以通過執行緒組區分,便於設定不同的測試資料個數。比較獨立的介面,可以統一放線上程組內,順序完成測試。3)流程性介面測試:如果要測試的介面可以組成一個流程,執行順序新增

【蟲師--系列】JMeter基礎之一 一個簡單的效能測試

來自:http://www.cnblogs.com/fnng/archive/2012/12/22/2829479.html     作者:蟲師 上一節中,我們瞭解了jmeter的一此主要元件,那麼這些元件如何使用到效能測試中呢。這一節建立一個簡單的測試計劃來使用這些元

Jmeter一個簡單介面測試(一)

Jmeter介面測試例項 1.新建一個Thread Group 2. 線上程組下建一個HTTP請求 3. 在http請求下建檢視結果樹 4. 在http請求下建聚合報告 5.在http請求下建圖形結果 6.執行 最後右擊執行緒組,單擊

轉:JMeter基礎之一 一個簡單的性能測試

cat 自動生成 html enc 兩個 導致 自己的 線程數 網絡 QPS 解釋   QPS : Query Per Second 每秒查詢率。是一臺查詢服務器每秒能夠處理的查詢次數。在因特網上,作為域名系統服務器的機器的性能經常用每秒查詢率來衡量。   為了達成預期

JMeter基礎之一 一個簡單的性能測試

每一個 his 監聽 time 右鍵菜單 服務器名稱 則表達式 因此 影響 QPS 解釋   QPS : Query Per Second 每秒查詢率。是一臺查詢服務器每秒能夠處理的查詢次數。在因特網上,作為域名系統服務器的機器的性能經常用每秒查詢率來衡量。 1)測試目標網

Jmeter---一個簡單的效能測試例項(聚合報告)

現在用到Jmeter工具做效能測試還是很方便的,我下面給大家介紹一個簡單的測試例項。 一、我以測試百度首頁為例,我們先建一個執行緒組:   二、新增執行緒組後再新增一個sampler---HTTP請求   三、在HTTP請求頁面設定相關測試引數 我們採用的是GE

python一個簡單的websocket測試客戶端

ID 8.0 IT int right border type 測試 com 朋友發的,之前在網上一直沒找著,先記著 #!/usr/bin/env python import asyncio import websockets import json async d

一個簡單的JSP測試頁面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE html> <%@ page session="true"%> <html lang="zh">

GUI使用者介面一個簡單例項

這篇部落格寫得比較趕,就不贅述了。 內含有設定框架,面板,按鈕怎麼嵌在一起,插入圖片,設定字型和顏色,前景色背景色,位置等。重點在實現功能,介面並不美觀。 私以為,這麼多個東西怎麼看呢?就應該把一些行註釋掉就知道怎麼看了。 image是在src下面的資料夾 package gui; im

SpringBoot入門筆記02——簡單http介面開發實戰

開始寫程式碼 一、建立一個簡單的介面,返回json 1、建立相應的包和類 一般我們會分包進行建立,我這裡簡單建立了一

LoadRunner測試一個簡單的AJAX例子

"Url=http://www.google-analytics.com/__utm.gif?utmwv=1.3&utmn=1868440947&utmcs=utf-8&utmsr=1280x800&utmsc=32-bit&utmul=zh-cn&utmje=

一個簡單的monkey測試工具

  Monkey的概念: “猴子測試”是指沒有測試經驗的人甚至對計算機根本不瞭解的人(就像猴子一樣)不需要知道程式的任何使用者互動方面的知識,如果給他一個程式,他就會針對他看到的介面進行操作,其操作是無目的的、亂點亂按的。 這種測試方式在產品週期中的早期階段會找到很多很好的bu

一個簡單登入介面

先寫好登入介面的佈局,記住要寫一個Checkbox。 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.an

java web + testNG + ant + Selenium整合對IE瀏覽器的自動化測試二(一個簡單的Selenium測試)

一、首先我們需要建立一個Java web工程,建立步驟如下圖所示: 1、Eclipse左上角選擇“File -> New -> other -> Dynamic web Project”,點選next 2、填寫工程的名稱,後面三個選項根據自己的配置選擇(

Flutter學習:用Flutter搭建一個簡單登入介面

搭建如下圖所示的登入介面 看到結構圖,可以使用一個列布局即可完成,對於輸入框,使用TextField控制元件,對於輸入控制元件樣式,通過Container控制元件來裝飾。 看程式碼: //登入介面 class LoginView extends StatelessWidget {

一個簡單python介面開發(flask_restful案例

執行環境:python3 post引數:user,pwd 介面功能:將引數轉換成字串相加並返回json from flask import Flask, g from flask_restful import reqparse, Api, Resource from f

Appium+python 一個簡單的登入測試例項

# coding=utf-8 from appium import webdriver import time import unittest import os import HTMLTestRunner class LoginTestLizi(unit

node搭建伺服器並且寫一個簡單介面、調介面

對於剛開始不會node寫介面和呼叫介面,可以通過這個清晰的初步瞭解到整個過程。 1.在node官網https://nodejs.org/en/下載node.js 2.在自己電腦中新建一個資料夾,例如

Selenium_python自動化跨瀏覽器執行測試簡單多線程案例

思路 IT port 情況 art 百度一 吸引 find 導致 發生背景:     跨瀏覽器測試是功能測試的一個分支,用以驗證web應用在不同瀏覽器上的正常工作,通常情況下,我們都期望web類應用能夠被我們的用戶在任何瀏覽器上使用,例如有的人喜歡IE瀏覽器上使用,有的人喜

Windows 上靜態編譯 Libevent 2.0.10 並實現一個簡單 HTTP 伺服器

      假設 Visual Studio 2005 的安裝路徑為“D:\Program Files\Microsoft Visual Studio 8\”,Libevent 2.0.10 解壓後的路徑為“D:\libevent-2.0.10-stable”。 編譯生成L