New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

接口响应的结果检查 #29

Closed
Junho2010 opened this Issue Aug 22, 2017 · 9 comments

Comments

Projects
None yet
4 participants
@Junho2010

Junho2010 commented Aug 22, 2017

一个建议:目前的检查结果的方式只有check一种,是否可以新增通过函数对结果进行检查,通过函数返回的结果(True,False,Error等)标记结果?

@debugtalk

This comment has been minimized.

Show comment
Hide comment
@debugtalk

debugtalk Aug 22, 2017

Collaborator

@Junho2010 麻烦后面在提issue的时候,标题和正文分开,不要把内容全写到标题里面。

Collaborator

debugtalk commented Aug 22, 2017

@Junho2010 麻烦后面在提issue的时候,标题和正文分开,不要把内容全写到标题里面。

@debugtalk debugtalk changed the title from 一个建议:目前的检查结果的方式只有check一种,是否可以新增通过函数对结果进行检查,通过函数返回的结果(True,False,Error等)标记结果? to 接口响应的结果检查 Aug 22, 2017

@debugtalk

This comment has been minimized.

Show comment
Hide comment
@debugtalk

debugtalk Aug 22, 2017

Collaborator

@Junho2010 检查结果的方式并非只有一种,而是实现了很多comparator,可以实现指定响应字段与预期结果之间各种复杂的比较方式。

Collaborator

debugtalk commented Aug 22, 2017

@Junho2010 检查结果的方式并非只有一种,而是实现了很多comparator,可以实现指定响应字段与预期结果之间各种复杂的比较方式。

@debugtalk debugtalk added the question label Aug 22, 2017

@Junho2010

This comment has been minimized.

Show comment
Hide comment
@Junho2010

Junho2010 Aug 22, 2017

@debugtalk
这个我看过,对应的源码也看了一些。但是对于一些比较复杂的,比较比较困难。我目前的遇到的有以下一些情况:
1.发送请求时的数据使用了随机生成,然后需要比较结果中的数据是否是和这个相关(通过某个算法转换)。比如我输入的是321,我的结果是(3+2+1)*avg(3+2+1)这种转化,目前的comparator是比较难于实现的。但是如果通过函数去比较,则很容易实现。

2.判断响应是否符合某个规范(可以通过comparator实现,但是比较的步骤会比较麻烦)

Junho2010 commented Aug 22, 2017

@debugtalk
这个我看过,对应的源码也看了一些。但是对于一些比较复杂的,比较比较困难。我目前的遇到的有以下一些情况:
1.发送请求时的数据使用了随机生成,然后需要比较结果中的数据是否是和这个相关(通过某个算法转换)。比如我输入的是321,我的结果是(3+2+1)*avg(3+2+1)这种转化,目前的comparator是比较难于实现的。但是如果通过函数去比较,则很容易实现。

2.判断响应是否符合某个规范(可以通过comparator实现,但是比较的步骤会比较麻烦)

@debugtalk

This comment has been minimized.

Show comment
Hide comment
@debugtalk

debugtalk Aug 22, 2017

Collaborator

@Junho2010
1、这种情况的确比较复杂;除此之外,有些情况例如加密转码的情况,也得通过你说的这种方式来做;
2、判断是否符合规范,如果只是文本字符串,可以用正则表达式来匹配。

总的来说,这个需求可以考虑做,你有兴趣提PR么?

Collaborator

debugtalk commented Aug 22, 2017

@Junho2010
1、这种情况的确比较复杂;除此之外,有些情况例如加密转码的情况,也得通过你说的这种方式来做;
2、判断是否符合规范,如果只是文本字符串,可以用正则表达式来匹配。

总的来说,这个需求可以考虑做,你有兴趣提PR么?

@Junho2010

This comment has been minimized.

Show comment
Hide comment
@Junho2010

Junho2010 Aug 22, 2017

@debugtalk 半路出家的,现在水平还比较差。目前还在研究你的代码,准备自己改造改造着用,目前计划是使用你的核心部分,把测试报告生成和结果检查部分重新弄下。

Junho2010 commented Aug 22, 2017

@debugtalk 半路出家的,现在水平还比较差。目前还在研究你的代码,准备自己改造改造着用,目前计划是使用你的核心部分,把测试报告生成和结果检查部分重新弄下。

@yileye

This comment has been minimized.

Show comment
Hide comment
@yileye

yileye Aug 22, 2017

@debugtalk 测试报告建议使用allure这个测试报告框架

yileye commented Aug 22, 2017

@debugtalk 测试报告建议使用allure这个测试报告框架

@migismile

This comment has been minimized.

Show comment
Hide comment
@migismile

migismile Sep 13, 2017

如果返回的数据是

{
    "data":[
        {
            "limits": {
                "max": 30000
            }
        }
    ]
}

这种格式,想检查max的值是否匹配,那么用例的validators应该怎么写,我试了data.limits.max报没有data这个属性

migismile commented Sep 13, 2017

如果返回的数据是

{
    "data":[
        {
            "limits": {
                "max": 30000
            }
        }
    ]
}

这种格式,想检查max的值是否匹配,那么用例的validators应该怎么写,我试了data.limits.max报没有data这个属性

@debugtalk

This comment has been minimized.

Show comment
Hide comment
@debugtalk

debugtalk Sep 13, 2017

Collaborator

@migismile

validators:
    - {"check": "content.data.0.limits.max", "expected": 30000}
Collaborator

debugtalk commented Sep 13, 2017

@migismile

validators:
    - {"check": "content.data.0.limits.max", "expected": 30000}

@debugtalk debugtalk added the TODO label Sep 20, 2017

debugtalk pushed a commit that referenced this issue Dec 12, 2017

httprunner
#29: refactor validator:
1, relocate validate functions;
2, add unittest for custom defined validators.
@debugtalk

This comment has been minimized.

Show comment
Hide comment
@debugtalk

debugtalk Dec 12, 2017

Collaborator

已经支持在validator中使用自定义函数进行结果判断。

使用方式可参考单元测试中的sum_status_code示例函数。

Collaborator

debugtalk commented Dec 12, 2017

已经支持在validator中使用自定义函数进行结果判断。

使用方式可参考单元测试中的sum_status_code示例函数。

@debugtalk debugtalk added enhancement and removed TODO labels Dec 12, 2017

@debugtalk debugtalk closed this Feb 17, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment