我们今天讲解的内容

一、什么是Requests? Requests是用Python语言编写的简单易用的HTTP库,用来做接口测试的库。

二、安装requests库 1.按住Windows标志+r,在运行窗口输入cmd,输入pip install requests进行安装。

三、接口测试的流程:

1、问开发人员要到接口文档(或者通过fiddler和chrome浏览器抓包)

2、查看当前接口是用什么请求发送的

3、添加对应的请求参数

4、在IDE工具中右键点击run,运行py文件,发送接口请求,查看返回结果,对返回 结果进行校验看是否正确

四、

# # 接口测试:
# # 组建一个接口需要哪些参数
# # 1、URL请求地址
# # 2、当前接口的请求方式get /post
# # 3、当前接口的请求类型
# # 4、接口的入参

# # # # # # 请求方式有三种:
# # # # # # 第一种:
# # rep =requests.get()
# rep =requests.post()
# # 第二种
# rep =requests.request(post,get)
# # 第三种
# session =requests.Session()
# #创建一个session对象,作用就是保持会话和关联
# rep =session.get()
# rep =session.post()

post使用方法

一个post请求方法:

get 方法:

第二种:调用方法

# # # 通过第二种请求方式来构建请求
import requests
url ='http://129.226.122.199:8080/cms/manage/loginJump.do'
data ={'userAccount': 'admin',
'loginPwd': 123456}
rep =requests.request(method='get',url=url,params=data)
print (rep) #Response [200]>
print (rep.text) #{"code":"200","msg":"登录成功!","model":{}}

#封装接口

import requests
class Cms_api: #定义一个类
def __init__(self): #定义一个构造函数用来初始化
pass
def fun(self): #定义一个方法
'''封装登录接口'''
url ='http://129.226.122.199:8080/cms/manage/loginJump.do'
data={'userAccount': 'admin','loginPwd': 123456}
headers ={'Content-Type': 'application/x-www-form-urlencoded'}
rep =requests.post(url=url,data=data,json=headers)
print (rep.text)
'''如需要断言则要把类型转换成为字典:js'''
js =rep.json() #切记如需要断言一定要转换否者无法断言
assert js["msg"] =="登录成功!"
if js["msg"] =="登录成功!":
print ('接口用例正常')
else:
print ('接口用例异常')
if __name__ == '__main__':
c =Cms_api() #创建一个对象
c.fun() #实例方法,通过对象调用实例方法

  

断言

第三种方法:结合多个接口进行封装

#第三种方法
# # 练习题目:
# # 将登录接口,用户管理接口,新增用户接口封装在类中且实现断言,
# # 请求方式:post
import requests #到入 接口库
session= requests.Session() # 创建一session对象来保持上下接口的关联
class Cms_api:
def __init__(self):
pass
def cms_dl(self): #定义一个登录
url ='http://129.226.122.199:8080/cms/manage/loginJump.do'
data={'userAccount': 'admin','loginPwd': 123456}
headers ={'Content-Type': 'application/x-www-form-urlencoded'}
# dl_rep=requests.post(url=url,data=data,json=headers)
dl_rep =session.post(url=url,data=data,json=headers)
print (dl_rep.text)#{"code":"200","msg":"登录成功!","model":{}}
js =dl_rep.json()
assert js["msg"]=="登录成功!"
def cms_yhgl(self): #定义一个用户管理接口
uerlist_url='http://129.226.122.199:8080/cms/manage/queryUserList.do'
uerlist_data={'startCreateDate': '','endCreateDate': '','searchValue': '', 'page': 1}
uerlist_headers={'Content-Type': 'application/x-www-form-urlencoded'}
# uerlist_rep=requests.post(url=uerlist_url,data=uerlist_data,json=uerlist_headers)
uerlist_rep=session.post(url=uerlist_url,data=uerlist_data,json=uerlist_headers)
print (uerlist_rep.text) #{"code":"200","msg":"登录成功!","model":{}}
js =uerlist_rep.json() #"code":"200","msg":"查询用户成功!",
if js["msg"]=="查询用户成功!":
print ('查询接口正常')
else:
print ('查询接口失败')
def cms_uers(self): #薪增用户接口
user_url='http://129.226.122.199:8080/cms/manage/saveSysUser.do'
user_data={'id':'' ,'userName': 'cccc','userSex': 1,'userMobile': 13314333333,
'userEmail': '8834343@qq.com','userAccount': 'cccc', 'loginPwd': 123456,
'confirmPwd': 123456}
user_headers={'Content-Type': 'application/x-www-form-urlencoded'}
# user_rep=requests.post(url=user_url,data=user_data,json=user_headers)
user_rep=session.post(url=user_url,data=user_data,json=user_headers)
print (user_rep.text) #{"code":"400","msg":"保存用户信息失败,登录帐号已存在!","model":{}}
js =user_rep.json()
assert js["msg"]=="保存用户信息失败,登录帐号已存在!"
if __name__ == '__main__':
U=Cms_api() # 创建一个对象
U.cms_dl() #对象调用登录接口
U.cms_yhgl() #对象调用用户管理接口
U.cms_uers() #对象调用新增用户接口
# #

  

多测师讲解requests __介绍_高级讲师肖sir的更多相关文章

  1. 多测师讲解requests __中_高级讲师肖sir

    (1)生成报告 import unittest #导入单元测试框架 import requests #导入接口库 import time # #时间戳,导入time模块 from api.HTMLTe ...

  2. 多测师讲解requests __上_高级讲师肖sir

    1.三种接口接口请求方式 # # 在python当中接口的请求方式有哪些:# import requests # 导入requests接口库# # # # 请求方式有三种:# # # # 第一种:# ...

  3. 多测师讲解 _requests安装问题解决_高级讲师肖sir

    步骤一:"dos下新建一个pip文件,在文件下建一个pip.ini 文件,步骤二:文件中内容[global]index-url=http://mirrors.aliyun.com/pypi/ ...

  4. 多测师讲解自动化 _rf 变量_高级讲师肖sir

    rf变量 log 打印全局变量 列表变量: 字典变量: 查看当前工程下的变量 紫色表示变量名有误 设置全局变量 设置列表变量 设置字段变量 关键字书写格式问题

  5. 多测师讲解自动化测试 _RF连接数据库_高级讲师肖sir

    RF连接数据库:1.Connect To Database(连接数据库)2.Table Must Exist(表必须存在)3.Check If Exists In Database(查询某条件是否存在 ...

  6. 多测师讲解seleniun_ ACTIONCHAUNS定位_高级讲师肖sir

    1.传统方法定位 2.模拟鼠标定位

  7. 多测师讲解selenium_iframe框定位_高级讲师肖sir

    iframe 框定位方法: 查看iframe框 京东点击登录定位元素 定位qq: qq登录定位的元素 查找iframe框 定位iframe框 from selenium import webdrive ...

  8. 多测师讲解selenium _assert断言_高级讲师肖sir

    assert断言 # # 断言:最常用的断言方法if判断# assert Python语法中自带的断言from selenium import webdriverfrom time import sl ...

  9. 多测师讲解python _re模块_高级讲师肖sir

    import re# 一.常用方法:# match():从头匹配# search():从整个文本搜索# findall():找到所有符合的# split():分割# sub():替换# group() ...

随机推荐

  1. 蒲公英 · JELLY技术周刊 Vol.21 -- 技术周刊 · React Hooks vs Vue 3 + Composition API

    蒲公英 · JELLY技术周刊 Vol.21 选 React 还是 Vue,每个人心中都会有自己的答案,有很多理由去 pick 心水的框架,但是当我们扪心自问,我们真的可以公正的来评价这两者之间的差异 ...

  2. hadoop不能互相访问和linux防火墙守护进程

    前言——作为装过几次集群的菜鸟,对于hadoop集群的安装还是比较有心得的:只要配置文件够好,集群配置就非常容易,否则也容易出现莫名其妙的问题!总结了一份3台机器搭建较完好的集群的一份配置文件. 在我 ...

  3. Java的枚举简单应用

    /** * 请用枚举方式实现如下应用: * 客户去旅店住房, * 客户分普通客户,和vip客户,vip分白金和钻石客户 * 不同的客户有不同的折扣 * 入住的房间分单人房,双人房和套房 * 不同的房间 ...

  4. request的各种方法

    protected void doPost(HttpServletRequest request, HttpServletResponse response)        throws Servle ...

  5. 虚拟机安装centos常见问题

    一.centos下载安装 环境:win10系统,虚拟机vm12, centos6.5 http://vault.centos.org/ 链接打开 选择6.5=>isos/=>x86_64= ...

  6. python 手把手教你基于搜索引擎实现文章查重

    前言 文章抄袭在互联网中普遍存在,很多博主都收受其烦.近几年随着互联网的发展,抄袭等不道德行为在互联网上愈演愈烈,甚至复制.黏贴后发布标原创屡见不鲜,部分抄袭后的文章甚至标记了一些联系方式从而使读者获 ...

  7. 软件定义网络(SDN)第二次实验报告

    目录 实验 2 :Mininet 实验--拓扑的命令脚本生成 一.实验目的 二.实验任务 三.实验要求 四.具体实验步骤 引导实验 Part 1 引导实验 Part 2 本周实验任务完成流程 五.注意 ...

  8. [LeetCode]695. 岛屿的最大面积(DFS/BFS)、200. 岛屿数量(DFS/BFS待做/并差集待做)

    695. 岛屿的最大面积 题目 给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合.你可以假设二维矩阵的四个边缘都被 ...

  9. 最全总结 | 聊聊 Python 数据处理全家桶(Mysql 篇)

    1. 前言 在爬虫.自动化.数据分析.软件测试.Web 等日常操作中,除 JSON.YAML.XML 外,还有一些数据经常会用到,比如:Mysql.Sqlite.Redis.MongoDB.Memch ...

  10. docker注册&打包

    在https://hub.docker.com上注册账号,新建reosity docker images命令列出dockerlist docker login命令登录:这其中出现了一个问题,登录不上去 ...