pytest 自动化框架搭建-第case
我觉得以上博客写的比较详细,并且可以获取博主公众号资源,我是根据博主的框架结构来学习的,使用的是自己java写接口来进行的学习,以下之时将一个case跑起来了
一、接口请求遇到的问题
请求接口时,调用接口返回400,日志打印报错如下
JSON parse error: Unrecognized token 'name': was expecting 'null', 'true', 'false' or NaN; nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'name': was expecting 'null', 'true', 'false' or NaN
at [Source: (PushbackInputStream); line: 1, column: 6]]
排查了好久,原写法data=parameters, 将参数使用json.dumps()进行了一下转化
该框架下是使用json文件作为用例数据的管理:如下dataItem 下为测试数据,这个json文件中包含了两条case,parameters下为接口请求参数,expectdata 下为需要校验的参数
{
"dataItem": [
{
"id": "testpost-1",
"name": "登陆成功",
"url":"/api/user/doLogin",
"headers":{
"Content-Type":"application/json"
},
"parameters": {
"name":"uu",
"password":"XXX"
},
"expectdata": {
"data": "登录成功",
"message":"success"
}
},
{
"id": "testpost-2",
"name": "登陆失败",
"url":"/api/user/doLogin",
"headers":{
"Content-Type":"application/json"
},
"parameters": {
"name":"uu88",
"password":"XXX"
},
"expectdata": {
"data": "用户名或密码错误",
"message":"faild"
}
}
]
}
-
class TestLogin:
-
#获取文件json文件路径
-
file_json_data_path = ReadJsonFileUtils.get_data_path("resource","login_data.json")
-
#读取json文件数据
-
param_data = ReadJsonFileUtils(file_json_data_path)
-
data_item = param_data.get_value('dataItem')
-
-
@pytest.mark.parametrize('args',data_item)
-
def test_login(self,args):
-
print("用例id",format(args["id"]))
-
print("用例名称",format(args["name"]))
-
logging.info("测试用例开始执行")
-
#接口请求
-
res = HttpUtils.http_post(headers=args["headers"],url=CAOLIAO_HTTP_POST_HOST args["url"],parameters=args['parameters'])
-
#接口断言
-
assert (res.get("message") == args["expectdata"]["message"])
-
assert (res.get("data") == args["expectdata"]["data"])
-
print("res值",res)
以上是一个case,其中 ReadJsonFileUtils是封装的读取.json文件的模块,HttpUtils封装的requests接口请求的模块
@pytest.mark.parametrize('args',data_item) 标签用来做参数化,其中args为参数,data_item为参数具体值,如果参数多个可以定义多个参数,data_item 有多个值时,case就会执行多次,个人觉得还挺方便的
assert 为断言,将请求返回的参数,与json文件中expectdata 数据比较
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhiebbfi
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22