python接口自动化

# coding=utf-8

'''
python中常用的做接口自动化测试的库有哪些?
requests、urllib、urllib3、httplib
requests是开源免费的,应用最多的一个库
'''
# import requests
#创建接口请求三种方法
#r=requests.post(url=url,data=data,json=json)
#r=requests.request('psot',url=url,data=data)
#r=requests.Session()   #使用session保持上下文管理,可以保持会话状态

#get请求的参数一般放在params里面
#post请求参数一般放在data和json里面
#如果接口内容类型connect-type为application/x-www-form-urlencoded 就用data
#如果接口内容类型connect-type为application/json 就用json

#组件一个post请求
#发送一个接口请求基本组成有哪些?url地址、入参、headers、接口请求方法
#1.定义url地址
# login_url='http://cms.duoceshi.cn/cms/manage/loginJump.do'
#2.接口的入参
# data={'userAccount': 'admin',
#       'loginPwd': 123456 }

#3.接口请求头
# headers={'Content-Type': 'application/x-www-form-urlencoded'}

#组件接口
# r=requests.post(url=login_url,data=data,headers=headers)
# result=r.text             #{"code":"200","msg":"登录成功!","model":{}}  <class 'str'>
# result=r.json()             #把接口返回json字符串通过json函数进行处理成字典{'code': '200', 'msg': '登录成功!', 'model': {}} <class 'dict'>
# print(result,type(result))
# print(result,type(result))
# print(r.headers)           #拿到响应头
# print(r.status_code)        #拿到响应状态码
# print(r.cookies)           #拿到响应的cookie

#第一种断言方法
# if result['msg']=='登录成功!':
#     print('接口断言成功')
# else:
#     print('接口断言失败')

#第二种断言方法
# if result['code']=='200':
#     print('接口断言成功')
# else:
#     print('接口断言失败')

#组件get请求
#1.定义url地址
# login_url='http://cms.duoceshi.cn/cms/manage/loginJump.do'
#2.接口的入参
# data={'userAccount': 'admin',
#       'loginPwd': 123456 }

#3.接口请求头
# headers={'Content-Type': 'application/x-www-form-urlencoded'}

#组件接口
# r=requests.get(url=login_url,params=data,headers=headers)
# result=r.text            #{"code":"200","msg":"登录成功!","model":{}}
# result=r.json()          #{'code': '200', 'msg': '登录成功!', 'model': {}}
# print(result)


#把接口请求封装在类里面
import requests
# class   Cms():
#     def __init__(self):
#         #创建一个session对象,作用就是保持上下文管理,登录之后和登录的接口保持在同一个会话中
#         self.session=requests.Session()
#     def login_url(self):
#         '''封装一个登录接口'''
#         login_url='http://cms.duoceshi.cn/cms/manage/loginJump.do'
#         data={'userAccount': 'admin',
#                 'loginPwd': 123456 }
#         header={'Content-Type': 'application/x-www-form-urlencoded'}
#         #组件接口
#         r=self.session.post(url=login_url,data=data,headers=header)
#         result=r.json()
#         print(result)
# if __name__ == '__main__':
#     c=Cms()
#     c.login_url()

import unittest
class   Cms(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        # 创建一个session对象,作用就是保持上下文管理,登录之后和登录的接口保持在同一个会话中
        cls.session = requests.Session()
    def test01_login(self):
        login_url = 'http://cms.duoceshi.cn/cms/manage/loginJump.do'
        data = {'userAccount': 'admin',
                'loginPwd': 123456}
        header = {'Content-Type': 'application/x-www-form-urlencoded'}
        # 组件接口
        r = self.session.post(url=login_url, data=data, headers=header)
        result = r.json()
        print(result)
    def test02_query(self):
        query_url='http://cms.duoceshi.cn/cms/manage/queryUserList.do'
        query_data={'startCreateDate':'',
                    'endCreateDate':'',
                    'searchValue':1234,
                    'page':1}
        query_header={'Content-Type': 'application/x-www-form-urlencoded'}
        r=self.session.post(url=query_url,data=query_data,headers=query_header)
        result=r.json()
        print(result)

if __name__ == '__main__':
    unittest.main()

 

posted @ 2023-04-19 23:30  jormen  阅读(143)  评论(0编辑  收藏  举报