どのようにpython言語でweb APIの自動化テストをします


主に対応するHTTPリクエストの構築
1,内蔵httplib,URLlib 2
2,サードパーティ製ライブラリ,urllib 3,request,pyCurlcmd
requestコマンドのインストール:pip install(--user)requests
インストール後、pythonで
import requests

requests.get('https://www.icwant.com')

要求構築:
method , URL ,header
自動化プロジェクトの実行
最初のステップ需要作成例を分析し、第2歩;これらの使用例が合格できるかどうかを手動でテストします.
プロジェクトの練習手、手順は以下の通りです.
getリクエスト

カリキュラムインタフェースのリスト
システム内のすべてのトレーニングコース情報をリストするために使用します.
リクエスト構文
GET /api/mgr/sq_mgr/?action=list_course&pagenum=1&pagesize=20 HTTP/1.1

url要求パラメータ
action	  list_course,            

pagenum	            ,      1

pagesize	               ,      20

リクエストボディの内容
要求内容を指定する必要はありません.
レスポンス構文
HTTP/1.1 200 OK
Content-Type: application/json

ヘッダ情報
Content-Type通常、この値はアプリケーション/jsonに設定され、JSON形式のテキスト情報を返します.
応答内容
リクエストが成功した場合、json形式のメッセージボディが次のように返されます.
{
    "retlist": [
        {
            "desc": "    ",
            "id": 418,
            "display_idx": 1,
            "name": "    "
        },
        {
            "desc": "    ",
            "id": 419,
            "display_idx": 2,
            "name": "    "
        },
        {
            "desc": "    ",
            "id": 420,
            "display_idx": 3,
            "name": "    "
        }
    ],
    "total": 3,
    "retcode": 0
}

retcode  0      。
total              
retlist        ,              。


 
import requests,pprint
from datetime import datetime

res = requests.get('http://localhost/api/mgr/sq_mgr/?action=list_course&pagenum=1&pagesize=20 ')
bodyDict = res.json()
pprint.pprint(bodyDict)
if bodyDict['retcode'] == 2:
    print("pass")

 
postリクエスト

カリキュラムインタフェースの追加
新しいトレーニングコースの作成に使用
リクエスト構文
POST /api/mgr/sq_mgr/ HTTP/1.1
Content-Type:   application/x-www-form-urlencoded

url要求パラメータ
urlリクエストパラメータなし
リクエストボディの内容
action	  	  add_course,         

data	  	         ,    、  、    。
 json  。  :
{
  "name":"    ",
  "desc":"      ",
  "display_idx":"4"
}

レスポンス構文
HTTP/1.1 200 OK
Content-Type: application/json

ヘッダ情報
Content-Type必須通常の場合、この値はアプリケーション/jsonに設定され、JSON形式のテキスト情報を返します.
応答内容
リクエストが成功した場合、json形式のメッセージボディを返します.以下に示すように、retcode値が0の場合は追加に成功し、idは新規カリキュラムに対応するID番号です.
{
    "retcode": 0
    "id" : 1212
}

説明
カリキュラム名が既に存在する場合は、作成に失敗して結果を返します.
{
    "retcode": 2,
    "reason": "        "
}

resAdd_course = requests.post('http://localhost/api/mgr/sq_mgr/',
                              data={
                                  'action': 'add_course',
                                  'data':'''{
                                  "name":"    ",
                                  "desc":"      ",
                                  "display_idx":"4"
                                  }'''
                              })
retAddDict = resAdd_course.json()
pprint.pprint(retAddDict)
if retAddDict['retcode'] == 2:
    print("       ")
if retAddDict['retcode'] == 0:
    print("   ")