日常接触到的接口自动化从实际目标可以划分为两大类:
这种接口自动化,大多是单次执行,目的很明确是为了功能测试创造测试数据,节约人工造数据的时间和人工成本,提高功能测试人员的测试效率。
这种接口自动化的工作流程跟功能测试一样,需要设计接口测试用例,然后执行接口测试用例。说白了就是对单接口进行功能校验,包括接口参数的必填性、长度字符类型限制、入参枚举值等是否正确、响应数据是否正确等进行校验。
本文主要讲解第二种的接口自动化测试。浓缩了接口自动化的核心点进行实战,该实战或许能成为面试的加分点。
了解接口
接口请求方式:get
接口请求头:{"Content-Type": "text/html;charset=utf-8"}
接口请求体:{"key": "*****************,"type": ""}
参数值:type=guoji、keji、yule,默认top
新闻请求:http://v.juhe.cn/toutiao/index
备注:接口请求的key需要自行去聚合数据平台申请
设计接口测试用例
接口测试用例设计思路跟功能测试用例设计一致,基本是是校验:必填项、字符类型长度限制、入参内容等。
接口部分用例设计如下:(仅供参考)
完整的接口自动化测试,一般分为:数据、公共配置、接口脚本、报告三大基础文件夹。
知识点1:xlrd读取excel的基础方法
例如:
case1=[‘url_01’,’method_01’,{body_01 },’expect_01’]
Case2=[‘url_02’,’method_02’,{body_02 },’expect_02’]
最后提供给pytest读取的数据应该是:
[[‘url_01’,’method_01’,{body_01 },’expect_01’],
[‘url_02’,’method_02’,{body_02 },’expect_02’]]
代码片段:
使用列表追加的方法append()
备注:通过cell_values()读取到的单元格数据,默认是字符串str类型
知识点2:数据转化
知识点: requests接口请求基础
jsonpath语法,response[‘msg’]、response[‘data’][‘name’]
知识点:pytest框架
环境安装:pip install pytest
接口自动化运行脚本到生成allure-html报告,分为2步骤:
第1步:alluredir生成测试报告数据源文件json,存入report文件夹内
pytest.main(['接口请求脚本文件.py','-s','--alluredir=../report/'])
第2步:从report文件夹内将测试报告数据源文件json转为html报告
os.system('allure generate ../report/ -o ../report_html/')
知识点:jenkins构建+allure测试报告
结果