主要是构建相应的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("已增加")