Python——requests接口测试及Jenkins环境搭建
一、requests请求
1、post请求
data:
文件格式为表单
如果是JSON数据格式,需要对请求参数进行序列化的处理
json:
请求数据格式为JSON的数据格式
import requests "r"——response。post——请求方式 r=requests.post( # 请求地址 url="http://47.95.142.233:8000/login/auth/", # 请求参数,可以在Payload中查看 json={"username":"18292091170","password":"123456"}, headers={"Content-Type":"application/json;charset=UTF-8"} ) #Json中获取状态码、数据类型和响应头 print(r.status_code) # 状态码 print(r.json()) # 返回的是json的数据类型,字典类型 print(r.headers) # 响应头
print(r.text)——获取的是文件信息
print(r.content)——返回的二进制内容(bytes)
序列化处理
容易出错的问题:请求头信息,data内容,符号位置(放置错误,漏写或多写)
data=json.dumps({"username": "182****1170", "password": "123456"})
输出信息中添加内容
print(json.dumps(r.json(),indent=True,ensure_ascii=False))
2、动态参数
2.1、登录成功后,返回token
import requests import json def login(): r=requests.post( url="http://47.95.142.233:8000/login/auth/", data=json.dumps({"username": "182****1170", "password": "123456"}), headers={"Content-Type":"application/json;charset=UTF-8"}) return r.json()["token"] def index(): r=requests.get( url="http://47.95.142.233:8000/interface/index", headers={"Authorization":"JWT {token}".format(token=login())}) print(r.status_code) print(r.json()) index()
3、get请求方法
import requests import json def login(): r=requests.post( url="http://47.95.142.233:8000/login/auth/", data=json.dumps({"username": "182****1170", "password": "123456"}), headers={"Content-Type":"application/json;charset=UTF-8"}) return r.json()["token"] # 产品搜索,可以随意命名 def soProduct(): r = requests.get( url="http://47.95.142.233:8000/interface/products", params={"name":"asder"}, headers={"Authorization":"JWT {token}".format(token=login())}) print(r.status_code) print(r.url) print(r.json()) soProduct()
4、PUT请求方法
import requests import json def addProduct(): r=requests.post( url="http://47.95.142.233:8000/interface/product/", json={"name":"wp","product_type":"WEB","version":"12.2","master":"wp","description":"12345"}, headers={"Content-Type":"application/json","Authorization":"JWT {token}".format(token=login())}) return r.json()["id"] def updateProduct(): r=requests.put( url="http://47.95.142.233:8000/interface/product/{productID}/".format(productID=addProduct()), headers={"Content-Type":"application/json","Authorization":"JWT {token}".format(token=login())}, json={"name":"wp2.1","product_type":"WEB","version":"12.2","master":"wp","description":"12345","id":addProduct()}) print(r.json())
5、DEL
def delProduct(): r=requests.delete( url="http://47.95.142.233:8000/interface/product/{productID}/".format(productID=addProduct()), headers={"Authorization":"JWT {token}".format(token=login())}) print(r.status_code) delProduct()
二、
" "中的信息隐藏了,可以在互联网中请求时添加
import requests def loginCto(): r=requests.post( url="", headers={ "Content-Type":" ", "User-Agent":" ", "Referer":" ", "Cookie":" "}, data={ "_csrf":" ", "LoginForm[username]":" ", "LoginForm[password]":" ", "show_qr":"0"}) # 返回sessionID的信息 return r.cookies def profile(): r=requests.get( url=" ", cookies=loginCto()) print(r.text) profile()
session会话对象
1.1、所有的请求之间cookies能够共享
import requests def loginCto(): s=requests.Session() r=requests.post( url=" ", headers={ "Content-Type":" ", "User-Agent":" ", "Referer":" ", "Cookie":" "}, data={ "_csrf":" ", "LoginForm[username]":" ", "LoginForm[password]":" ", "show_qr":"0"}) # 返回session会话对象 return s def profile(): r=loginCto().get( url="https://www.51cto.com/") print(r.text) profile()
2、超时如何处理?
返回的信息提示为:connectTimeout
可以在请求中增加timeout的关键字,把响应时间增加一些,以避免这个错误
import requests r=requests.get( url="https://www.baidu.com", timeout=60 #以秒为单位 ) print(r.text)
目的是:让产品快速交付,并且保持高质量的业务交付
2、互联网产品的特点是:小步快跑,快速迭代
3、研发的标准化核心流程是:
将代码集成到主干分支后,必须要经过自动化的测试,如果自动化测试执行失败,就不能集成到主干分支上
4、持续集成指的是频繁的往主干分支提交代码,具备两大优点:
第一个:快速发现问题,将代码集成到主干分枝后,如果自动化执行失败,就能够快速的发现问题,并且定位问题
第二个:防止分支与主干分支偏离过大。后期集成成本比较高,或者难以集成
Jenkins持续集成工具持续集成中优秀的工具,是完全100%Java语言的,部署的方式是:
1、解压在当前文件夹中,把jenkins.war放在Tomcat的WebApps目录下
2、启动tomcatWEB容器,点击bin,选择startup.bat双击运行
开启运行:startup.bat、MAC为.sh
停止:shutup.bat
3、在浏览器中访问地址:http://localhost:8080/jenkins/,在控制台内按回车键让其继续运行
tomcat默认端口是8080
4、进入后密码地址可以在提示中的路径中查看,或者在控制台中查找
5、跳过插件安装,创建管理员信息填写,账户为wangpan,密码123456
6、进入实例配置后,直接点击保存并完成,然后就可以开始使用Jenkins了
7、进入主页后,选择Manage Jenkins,如图操作
8、进入Manage Jenkins,如果显示离线,可以把Update site的URL修改为http://updates.jenkins.io/update-center.json,然后再重启一下tomcat,多次尝试一下。在线后,下载JMeter下出现的Performance、git、ant、python、allure插件
五、在控制台中生成测试报告
1、jmeter、UI、API都会整合到jenkins持续集成
特性:
执行完成后可以查看报告
报警(与钉钉结合)
2、jenkins整合钉钉
参考链接:https://www.cnblogs.com/hong-fithing/p/13755720.html
2.1、点击钉钉群中的设置-智能群助手-添加机器人-自定义-添加
设置机器人名称及安全设置,复制出现的链接,点击完成
2.1、打开jenkins,点击Manage Jenkins-Configure System