接口自动化测试
接口自动化测试
Tim8709
这个作者很懒,什么都没留下…
展开
-
hamcrest断言
python自带assert可实现简单断言,但遇到复杂断言assert就不能支持了。而hamcrest能够很好的支持复杂断言,下面举例说明。 GitHub地址:https://github.com/hamcrest/PyHamcrest 示例 from hamcrest import * def test_hamcrest(): the_string = 'Hello Hamcrest' my_string = 'Hello Hamcrest' assert_that(the_s原创 2020-10-10 15:27:14 · 585 阅读 · 0 评论 -
接口自动化测试框架python+requests
思路 接口封装(将接口封装成对象,类似PageObject封装) 数据封装(数据与代码分离,数据存放在yaml文件中) 配置文件(实现全局配置) utils(其他功能封装) 测试用例(调用接口对象实现业务并断言) 接口封装 base_api.py import requests class BaseApi: def send_api(self, req: dict): pprint(req) r = requests.request(**req) p原创 2020-09-03 16:38:18 · 298 阅读 · 0 评论 -
json-schema自动校验
官方地址:https://json-schema.org/ jsonschema 一般用来进行json数据格式验证,在数据提交到业务层次之前进行json格式的验证,还可以根据需要自定义规则。 接口测试中,接口返回几十个字段,要对每个字段断言会很繁琐;我们可以用json schema来判断这几十个字段的类型和范围是否改动了。 import requests import json from jsonschema import validate def test_get_login_jsonschem原创 2020-08-16 14:08:35 · 1805 阅读 · 0 评论 -
jsonpath(xpath for json)
在接口测试中,我们需要断言接口的返回结果,若返回结果是json格式,就要一层一层的取json中的元素(r.json()[store][book][category]);若json层级较深,表达式就会很长。而jsonpath为我们提供了更加灵活、方便的方式,下面列举了些常用功能。 官网地址:https://goessner.net/articles/JsonPath/ from jsonpath import jsonpath book_dict = { "store": { "bo原创 2020-08-13 16:42:09 · 262 阅读 · 0 评论 -
mustache模板技术
构造接口请求时,经常会遇到请求体特别长的情况,但我们只需要修改其中一两个字段,此时我们就用到mustache模板技术了。把完整的请求体存放在json文件(模板)里,我们把需要修改的字段传入模板即可。 mustache.json(模板示例) { "username": "{{user}}", "password": "{{pwd}}" } mstache.py import pystache import requests with open("mustache.json", encoding="ut原创 2020-08-13 10:21:39 · 352 阅读 · 0 评论 -
requests请求与响应
python中的requests框架可以很方便的构造接口请求,详见正文。 介绍个练习接口测试项目地址:https://requests.readthedocs.io/zh_CN/latest/,这项目响应挺慢的,可以自己用docker搭建,详见官网。 请求目标构造 def url(): requests.get('http://xxx.xxx.com') 请求头构造 def header(): headers = {"User-Agent": "Mozilla/5.0"} requests.get(原创 2020-08-12 09:15:24 · 439 阅读 · 0 评论