postman使用与requests

postman的使用:

发起一个请求:
1、请求地址

https://v4.ketangpai.com/UserApi/login

2、请求方法:post

描述
applicaiton/x-www-form-urlencode表单提交方式
multipart/form-data在使用包含文件上传控件的表单时,必须使用该值。
application/json作为请求头告诉服务端消息主体是序列化的JSON字符串。
text/plain空格转换为 “+” 加号,但不对特殊字符编码。

3、请求数据

======================================================================================================================================

get:params参数:支持字典类型。与请求url拼接的参数

post:
data参数,支持字典类型。默认它的content-type是applicaiton/x-www-form-urlencode
         其它的conten-type都可以使用data参数,但是data参数的值就不是字典了,然后在请求头当中指定content-type
         
json参数,字典类型。默认它的content-type是application/json

http请求库:requests

安装:pip install requests

 session鉴权
   Session类 - 自动带上cookies
   1、实例化Session类
token鉴权
get,post...
加密处理。。


get:params参数:支持字典类型。与请求url拼接的参数
post:
    data参数,支持字典类型。默认它的content-type是applicaiton/x-www-form-urlencode
             其它的conten-type都可以使用data参数,但是data参数的值就不是字典了,然后在请求头当中指定content-type
    json参数,字典类型。默认它的content-type是application/json
    

代码如下:

import requests

# 实例化一个会话对象
s = requests.Session()

# 发起登陆请求
url = "https://v4.ketangpai.com/UserApi/login"
req_data = {
    "email": "2501768591@qq.com",
    "password": "yuan5311645",
    "remember": "0"
}

# 登陆请求
s.post(url, data=req_data)

# 发起下一个请求
url2 = "https://v4.ketangpai.com/VipApi/isVip"
resp = s.get(url2)
print(resp)		

print(resp.status_code)		# 获取响应状态码

print(resp.json())		
""" 响应数据 - 如果接口的响应数据是json格式 ,可以用这个方法。这个方法执行后的结果,是一个字典。 """

print(resp.headers)		# 响应头

print(resp.cookies)			# 响应的cookies

=============================================================
requests_token 鉴权

import requests

url = "https://openapiv5.ketangpai.com/UserApi/login"
req_data = {"email":"2501768591@qq.com",
            "password":"yuan5311645",
            "remember":"0",
            "code":"",
            "mobile":"",
            "type":"login"}

resp = requests.post(url, json=req_data)
resp_dict = resp.json()
token = resp_dict["data"]["token"]
print(token)

url2 = "https://openapiv5.ketangpai.com/CourseApi/semesterList"
req_data2 = {"isstudy":"0","search":""}
req_header = {"token": token}
resp2 = requests.post(url2,json=req_data2, headers=req_header)
print(resp2.json())

===============================================================
使用requests发登录请求:

import requests

# ==================== 注册接口 =========================================

#   请求头
headers = {
    "X-Lemonban-Media-Type":"lemonban.v2 "
}

"""注册 url 地址"""
url = 'http://api.lemonban.com/futureloan/member/register'

#   请求体
req_data = {
    "mobile_phone":"13560748369",
    "pwd":"wtg444444",
    "reg_name":"白糖"
}

# 请求类型:post
resp = requests.post(url,json=req_data, headers=headers)
print("注册的相应结果:{}".format(resp.text))

# ============================ 登录接口 =====================================

"""登录 url 地址"""
url = 'http://api.lemonban.com/futureloan/member/login'
headers = {
    "X-Lemonban-Media-Type":"lemonban.v2 "
}

# 请求体
req_data = {
    "mobile_phone":"13560748369",
    "pwd":"wtg444444"
}

# 请求类型:post
resp = requests.post(url,json=req_data,headers=headers)
print(f"登录的相应结果:{resp.text}")

# 提取出来,给到下一个接口作为请求
json_res = resp.json()
token = json_res["data"]["token_info"]["token"]
print(token)

#   提取用户 id
member_id = json_res["data"]["id"]
print(member_id)

# ===================== 充值接口 =============================================
# 请求头
headers = {
    "X-Lemonban-Media-Type":"lemonban.v2 ",
    "Authorization": "Bearer {}".format(token)
}
"""充值 url 地址"""
url = 'http://api.lemonban.com/futureloan/member/recharge'

# 请求数据
req_data = {
    "member_id": member_id,
    "amount": 16000
}

resp = requests.post(url, json=req_data, headers=headers)
print(resp.json())

========================================================

my_requests.py – 根据项目特色去封装的请求,比如请求头定制/鉴权处理

import requests

class MyRequests:
    # 初始化
    def __init__(self):
        self.headers = {"X-Lemonban-Media-Type": "lemonban.v2 "}

    # 属性
   # 方法											 							
    def send_requests(self, url, method(咩着子), json=None, params(伯略而子)=None, token=None):
        self.__deal__header(token)
        #   调用 requests 的方法发起一个请求。并得到相应结果
        if method.upper()== "GET":
            resp = requests.request(method, url, params=params, headers=self.headers)
        else:
            resp = requests.request(method, url, json=json, headers=self.headers)
        return resp

    def __deal__header(self, token=None):
        if token:
            self.headers["Authorization"] = "Bearer {}".format(token)

==============================================================

用例设计上花的时间(某个接口):

1、了不了解这个接口业务?或者熟不熟系统的业务?
2、有详细接口文档吗? 了解这个接口的过程长吗?
3、接口复杂吗?接口涉及的业务复杂吗?- 疏理逻辑/前置准备工作多吗?参数的组合多不多?
强烈建议大家去看看自己项目的接口都长啥样,去设计一个测试用例。
这是一个熟能生巧的过程。
最开始的时候,规定一天写两个接口的用例,后来发现有点时候,一天一个接口都写不完,因为实在是有些逻辑没搞懂啊!
你如果对这个东西懂了之后,你设计用例就很快了。写起来搜搜的。
比如:你设计 5 个接口花了三天时间,用例数达到了300条。就可以知道一天写了多少条用例,取平均数。

自动化覆盖率怎么样 这个怎么回答?

1、你做这个项目的接口自动化多久了?
如果你的参与时间,只有三个月或者一两个月,那是不可能达到百分之90的,百分之70都很难,还要搭建框架等等都需要时间。
2、系统大不大?是否复杂?
系统很大,比如系统有 6000 个接口? 覆盖率:如果是一个人做的接口,覆盖率是30%、70%、80% 都是可以的。
覆盖率:功能上/手工用例覆盖率 - 30% - 90%

覆盖率用例多少条?遇到什么困难(及解决方案)?
不想听你写代码上的困难(实现逻辑上)…
正确的回答方式:处理某个业务上遇到的设计困难。
你怎么搭建自动化测试框架的?

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值