转载请注明出处❤️
10年的凤县网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整凤县建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“凤县网站设计”,“凤县网站推广”以来,每个客户项目都认真落实执行。
作者:测试蔡坨坨
原文链接:caituotuo.top/a3a8d0c0.html
你好,我是测试蔡坨坨。
今天,我们来聊聊接口自动化测试是什么?如何开始?接口自动化测试框架怎么做?
自动化测试,这几年行业内的热词,也是测试人员进阶的必备技能,更是软件测试未来发展的趋势。
特别是在敏捷模式下,产品迭代速度快,市场不断调整,客户需求不断变化,单纯的手工测试越来越无法适应整个变化过程(迭代快,加班多)。测试人员如何快速响应并保证产品在上线后的质量能够满足市场要求(如何在上线一个新功能的同时快速对旧功能快速进行回归,保证旧功能不被新功能影响而出现严重的Bug?)。
针对以上问题,采用自动化测试无疑是一个不错的选择,能够做到在保证产品质量
的同时提升测试效率
。
随着行业内卷越来越严重,对于测试岗位的要求也是水涨船高,岗位招聘要求都会出现自动化测试的字眼,因此也是我们跳槽面试、升职加薪必备利器。
自动化测试又可分为接口自动化、Web UI自动化、App自动化,今天我们就来聊聊接口自动化测试。
分层测试金字塔模型
中,接口测试属于第二层服务集成测试,与UI自动化测试相比,接口自动化测试收益更大、更容易实现、维护成本更低,有更高的投入产出比,因此是公司开展自动化测试的首选。自动化测试工具有很多,每种工具都有各自的优缺点,选择适合自身实际情况的框架,落地实施才是重点,具体选择哪种工具放在其他文章再说。
这里使用 Python + Requests + Pytest + Allure
接口信息:
名称:全国高校信息查询接口
描述:用于查询全国高校信息
Host: www.iamwawa.cn
Request URL:/home/daxue/ajax
Request Method:POST
Content-Type: application/x-www-form-urlencoded
headers:user-agent:Chrome
参数:
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
type | String | 是 | name,根据名称查询 |
keyword | String | 是 | 高校名称,如:四川轻化工大学 |
请求示例:
POST /home/daxue/ajax HTTP/1.1
Host: www.iamwawa.cn
user-agent: Chrome
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=sjsrn0drje6ds5fq9kouoo2r23
Content-Length: 54
type=name&keyword=四川轻化工大学
响应示例:
{
"status": 1,
"info": "查询成功!",
"data": [
{
"id": "2181",
"name": "四川轻化工大学",
"code": "",
"department": "四川省",
"city": "自贡市",
"level": "本科",
"remark": ""
}
]
}
import requests
res = requests.post(url="https://www.iamwawa.cn/home/daxue/ajax",
headers={"user-agent": "Chrome"},
data={"type": "name", "keyword": "四川轻化工大学"})
assert res.status_code == 200
res_json = res.json()
print(res_json)
assert res_json["status"] == 1
使用以上代码,最基础最简单的接口测试就做起来了,好的开始就是成功的一半。
但是,问题也随之而来,线性脚本的缺点也暴露出来了:
所以,下一步就是如何优化线性脚本,也就是如何实现代码的高内聚低耦合,也是接口自动化测试框架要解决的问题。
GitHub开源代码:关注微信公众号 测试蔡坨坨,回复关键字 源码获取
base_api.py:对Requests库进行二次封装,完成对api的驱动
api:继承base_api,将http请求接口封装成Python方法
utils:CommonUtil,公共模块,将一些公共函数、方法以及通用操作进行封装,如:日志模块、yaml操作模块、时间模块
config:配置文件模块,配置信息存放,如:URL、Port、Headers、Token、数据库信息等
data:测试数据模块,用于测试数据的管理,数据与脚本分离,降低维护成本,提高可移植性,如:yml文件数据
cases:测试用例模块,用于测试用例的管理,这里会用到单元测试框架,如:Pytest、Unittest
run.py:批量执行测试用例的主程序,根据不同需求不同场景进行组装,遵循框架的灵活性和扩展性
logs:日志模块,用于记录和管理日志,针对不同情况,设置不同的日志级别,方便定位问题
reports:测试报告模块,用于测试报告的生成和管理,如:基于Allure生成的定制化报告
最后,可以关注公众号 测试蔡坨坨,和坨坨一起学习软件测试,升职加薪 ~
关于软件测试相关问题,都可以添加我微信私信交流:caituotuo666
需要学习资料也可以私信!!!免费获取简历、面试题、自动化测试、测试开发、性能等30种学习资源……