怎么样用python语言做web API 自动化测试

主要是构建相应的HTTP请求

1,内置httplib,URLlib2

2,第三方库,urllib3、request、pyCurlcmd

安装  request  命令:pip install (--user) requests

安装好后,在python中

import requests

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

请求构建:

method , URL ,header

执行自动化项目

第一步;分析需求编写用例,第二步;手工测试这些用例是否能够通过;

项目练手,步骤如下:

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 正常情况下该值将被设为application/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 必填 正常情况下该值将被设为application/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("已增加")

 

你可能感兴趣的:(接口自动化)