pytest + requests 搭建接口自动化框架及流程

接口自动化脚本

接口自动化是是可以完全贴合 整个自动化测试框架的

可以结合 pytest 以及 unittest 进行接口框架的编写

 

接口自动化测试体现流程

项目页面 - 接口文档 - 接口用例 - python脚本 - pytest框架 - 用例执行 - 测试报告 - 结果分析 - jenkins集成

 

搭建测试框架的思路

  核心技术:request发起请求,yaml作为配置,Excel写入用例,数据驱动结合pytest对用例管理,

       git管理代码,jenkins持续集成,或者是docker容器

 

先对代码封装

import requests
import json
import pytest


class Test_Case:

def test_home_page(self):

# 确定url
url = 'http://mp-meiduo-python.itheima.net/'
# 发起请求
res = requests.get(url=url)
assert res.status_code == 200



def test_login(self):
# 登录url
url = 'http://mp-meiduo-python.itheima.net/login/'

# 传入请求头
data = {
'username': 'admin',
'pwd': 'admin'
}
# 如果请求类型 为json 就需要转码
# data = json.dumps(data)

res = requests.post(url=url, data=data)
assert res.status_code == 200

if __name__ == '__main__':

# 执行指定接口测试用例文件 或生产测试报告
pytest.main(['-s','test.py','--html=my_case.html'])

 

结合数据驱动

class Test_Case:

@pytest.mark.parametrize('url',[
('http://mp-meiduo-python.itheima.net/')
])
def test_home_page(self,url):

res = requests.get(url=url)
assert res.status_code == 200


@pytest.mark.parametrize('url,data',[
('http://mp-meiduo-python.itheima.net/login/',{'username': 'admin',
'pwd': 'admin'})
])
def test_login(self,url,data):

url = url

data =data

# data = json.dumps(data)

res = requests.post(url=url, data=data)
assert res.status_code == 200

if __name__ == '__main__':

pytest.main(['-sv','test.py','--html=my_case.html'])

 

后期可以把get 与 post请求的参数都存入到数据驱动 对get类或post类进行写入

 



posted @ 2020-07-28 11:06  老祝头  阅读(4054)  评论(0编辑  收藏  举报