• 谢谢~

    1.您的意思是 封装这样子的功能“如果用例失败,首先检查是否有在黑名单中的弹窗,如果存在,则优先处理弹窗” 吗?

    2.重试机制是等所有用例运行完之后,重新运行所有失败用例,但是下一次仍然存在网络的原因,导致定位不到,还有就是当一个用例失败,马上重新运行,这个我也试过了,也是网络的原因会导致定位不到

  • 想请教几个问题:

    • 什么叫自动失败异常弹框算法?
    • 如果脚本增加智能等待和重试机制后,仍然没有用怎么办?
  • 谢谢!

  • 真的学到了很多,非常的谢谢你

  • 谢谢。
    请问接口测试的返回结果需要再一次通过数据库查询校验吗?

    比如:访问了查询的接口,返回值为:'totalPages': 194, 'currentPage': 0, 'totalElements': 9677, 'elements': [.....],这些值需要去数据库查询是否正确吗,还是只需要确认大致的正确就行,比如分页逻辑是否正确等。**

    我目前还没有比较好的校验手段,只能去看分页逻辑是否正确。

    再比如,增加的接口,需要去数据库校验是否数据库真的增加成功了吗?**

    我目前是这么做的:在增加前,使用查询接口,查询不到准备增加的数据,增加后,再使用查询接口,查询到了增加的数据,但是我看到有人是校验的数据库,所以比较疑惑。

  • 1.如果判断为不为空是开发自己写的 ,比如写了一个 check 函数(在第一行),那这个情况是业务逻辑?

    2.我的意思是,比如说 a 接口是 api 文档中没有的,但是可能 api 文档中存在的 b 接口的请求参数是 a 接口的返回值,那这个情况我是否需要自己写一个 a 接口,但是内部逻辑是自己来定义,类似于 callback。

  • 请问集成测试的意思是 不放入接口自动化测试的用例中吗

  • 谢谢,请问保证接口在正常传参的情况下的意思是,测试时输入值只需要考虑改变 body 或者 param 的值吗,还是只测试成功的情况,不测试失败的情况?

    可是失败的情况也是有可能的,比如,登录密码错误

  • 谢谢,我已经改了一下,如果之后再有这个错误,会有 andriod 的 logcat 输出,后面会贴出来。

  • 我试试。

  • timeout 是 10,然后 self.locator 是一个元组,所以用了 *,这些值是没问题的。

  • 其实是有点问题的,比如本来可以设置任何人为最佳回复,现在只能设置自己回复他人的那一条为最佳恢复了。

    还有就是附言功能确认之后会出现 “访问被拒绝,你可能没有权限或未登录。” 但是实际上只是附言自己的帖子,这样比较会妨碍大家方便的贴上解决方案。
    @chenhengjie123

  • 基本上不影响,如果没有办法改的话应该只能这样了。

  • 你可以 success ,应该是因为 allure 报告没有生成成功,可以看到里面有一句 allure-results does not exist 的报错信息,当你解决完这个问题,就会 unstable 了。(我之前的历程是这样的)

  • 本来解决的方法就在上面了呀。所以我专门艾特了下。

    pycharm 应该是捕获异常然后返回 0 了, jenkins 不会对对脚本做异常处理,可以用用 shell 的异常处理,让 pytes 执行完不论是否有失败的用例都 exit 0

    还有种方式就是把执行脚本放在一个 shell 脚本文件中,在文件末尾 exit 0

    bat '''cd C:\\Users\\user\\PycharmProjects\\smarthome
    pytest -m aaa --alluredir="./outputs/reports" --clean-alluredir --cache-clear
    if exist ".pytest_cache/v/cache/lastfailed" (
        pytest -m aaa --lf --alluredir="./outputs/reports"
    ) else (
        echo "xxx"
    )
    exit 0
    '''
    

    你可以先看完整个帖子,我是当时觉得可以结束了的,因为两位大佬都讲得很清楚了。

  • 日志如下:

    请问有什么解决办法吗?

  • 确实是可行的,但是我现在发现,如果 Pipeline 中含有失败的测试,将会被标注为 UNSTABLE, 标记为黄色。

    如果没有,才是 success。

  • 可以看看我艾特的两个人的答案。我添加了 exit 0

  • 谢谢大家~已解决~ @shieber @zhongxin94

  • 1.我觉得不是 allure report 的原因,在 stage 中,我删掉整个 post,结果仍然如上所示,因此,与发邮件和 allure 报告都没关系
    2.我已经清理掉啦 --clean-alluredir。

  • 用例执行中存在失败,退出程序时,pycharm 中是返回 0 的

    1. jmeter(虽然是压测可能可以用,不过我不了解有没有对应的校验工具)
    2. postman(可以做校验逻辑,但是鉴权不好写,是基于 js 的)
    3. 自己写程序逻辑做测试(python 或者 java 之类的),这个自定化是最高的,但是会比较麻烦

    java 现在基本上 junit5 或者 testNg 都行,但是这个是研发自己来关心业务逻辑的时候的解决方案
    用不用 Jenkins 取决于你的代码是否希望做定时运行,或者改了代码之后自动运行
    至于语言的话,我是觉得如果你们测试有多个人同时写自动化测试,统一语言可以方便大家沟通和随时切换角色(比如说临时接任务,这各种情况下甚至建议代码结构统一)

    接口自动化有两种概念,一种是研发自己写测试用例,然后用全新的数据库(可以是真的或者假的),然后调用 API 验证接口是否正常
    另外一种是从业务逻辑出发,写个程序或者测试用例调用远程真实的 API,然后验证返回的值是否符合你的预期

    第二种应该是要关心的吧,这种情况的话需要考虑怎么保证没有脏数据,怎么增加测试稳定性(比如因为用例之间的数据修改导致测试用例失败)

  • 感觉写代码更自由?其实我也不是很了解这些,而且也比较难找到了解的渠道。我们测试搞这个的只有我一个

  • 由于开发的原因,ios 搞不了了暂时

  • 便于录制是什么意思呢?