接口自动化测试

接口基础
1、http接口熟悉
2、常见接口介绍
前端和后端的桥梁,后端通过接口获取前端数据
接口组成
接口分类:get/post/put/delete
测试接口工具:postman/Fiddler/soupUI/jMeter/LoadRunner/senium
3、接口工具使用
4、常见接口基础面试
接口测试和功能测试区别:
都是在模拟用户的操作,只不过没经过前端
网络知识/代码能力/
常见接口类型:post/put/get/delete
get:以问号分割,=前面是参数,后面是数据
post:webform
如何抓取不同类型的接口:
抓取手机的接口:Fiddler及设置
接口开发
django—get post
搭建django环境
安装:pip install django
离线安装 python setup.py install
django下载

django创建APP应用:cmd–进入指定目录–python manage.py startapp name

get和post区别
json形式

requests
安装 pip install requests
遇到问题:
1、使用request报错 requests.exceptions.SSLError: HTTPSConnectionPool(host=‘www.zhihu.com’, port=443):
res=requests.get(url,verify=False)
2、无法访问某些网站
需要添加User-Agent 用户代理(也叫定制请求头)

#该字段可以从正常访问时的抓包工具中获得,或者从浏览器中查看
new_headers={
 "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
}
res=requests.get(url,headers=new_headers,verify=False)

3返回json数据时格式问题

return json.dumps(res.json(), indent=2, sort_keys=True)

requests库的使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Unnittest与接口测试结合
常见面试题:
如何使用python开发测试框架:
所有使用过的包
python+requests(接口)+Unittest(case管理)+HTMLTestRunner(生成测试报告)+excel/Mysql(管理数据存储)+持续集成/批处理
如何管理case
Unittest(有依赖的case)
简述case执行
有依赖情况/命名排序顺序执行/
如何解决case依赖
定义全局变量/
如何生成测试报告 HTMLTestRunner
Unittest使用
安装:一般python自带,可以cmd–import Unittest检测

# coding:utf-8
import unittest
from BaseFile.demo01 import RunMain
import HTMLTestRunner


# 固定unittest.TestCase
class TestMethod(unittest.TestCase):
    # 类方法只需要执行一次需要注解 @classmethod
    # @classmethod
    # def setUpClass(cls):
    #     print('before class\n')
    # @classmethod
    # def tearDownClass(cls):
    #     print('after class')
    # //测试方法执行之前执行
    # def setUp(self):
    #     run = RunMain()
    #     print("setUp")
    # def tearDown(self):
    #     print('teardown')
    # case必须以test开头
    def test_01(self):
        #post
        run = RunMain()
        url = "http://task.browser.360.cn/online/setpoint"
        data = {
            'stamp': '1589784096',
            'qt': 'Q = u = 360H2553395671 & n = & le = & m = ZGH4WGWOWGWOWGWOWGWOWGWOBGtm & qid = 2553395671 & im = 1t01923d359dad425928 & src = 360se & t = 1T = s = d432285a84c131208d832da5d19838aa & t = 1589187754 & lm = 0 - 1 & lf = 2 & sk = 35aa4fe29022e9aef2c12ae63fcb5d3a & mt = 1589187754 & rc = & v = 2.0 & a = 1',
            'verify': '1d7dfed5fc6f93ac96e4f2503209d2b2'
        }
        res=run.run_main(url,'POST',data)
        # 若不成功,报错测试失败
        # self.assertEqual(1001,1001,"测试失败")
        # self.assertNotEqual()
        # self.assertTrue()
        # 全局变量
        # globals()['userid']='1000999'
        # print("test01")
    # 跳过该case
    # @unittest.skip('test_02')
    def test_02(self):
        # get
        run = RunMain()
        url = 'http://127.0.0.1:8000/login/?username=hhh&mobile=123&data=2017'
        data = {
            'username': 'hhh',
            'mobile': '123',
            'data': '2017'
        }
        res = run.run_main(url, 'GET', data)
        print(res)
        print("test02")
# if __import__()
#     unittest.main()
# TestMethod().test_01()
if __name__ == '__main__':
    # 容器
    # suite=unittest.TestSuite()
    # suite.addTest(TestMethod('test_01'))
    # unittest.TextTestRunner().run(suite)
    # unittest.main()


    filePath="./report/htmlreport.html"
    fp=open(filePath,'wb')
    suite = unittest.TestSuite()
    suite.addTest(TestMethod("test_01"))
    suite.addTest(TestMethod("test_02"))

    runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title="this is first report")
    runner.run(suite)

代码运行结果
在这里插入图片描述
HTMLTestRunner
安装及常见问题
见https://blog.csdn.net/balabalabubu1/article/details/106196682
Requests的引入使用
断言
case的管理
从设计到开发接口测试框架
mock 代码实现fiddler功能
安装:pip install mock

def mock_test(mock_method,request_data,url,method,response_data):
    mock_method = mock.Mock(return_value=response_data)
    res=mock_method(url,method,request_data)
    return res

设计框架
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
工具类封装
基类封装
调试错误
数据处理
回写测试结果
解决数据依赖
结果统计
邮件服务
发送报告

常见接口测试技术
操作数据库
MySQL-python
python setup.py install
import MySQLdb
操作cookie
集成环境Jenkins

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值