• pytest 执行依赖及 test 之间传值一种处理方式:

    1. pytest 框架的 test 之间的传值:利用 fixture 即可
      conftest.py 中定义全局参数:

      @pytest.fixture(scope='session') # session是大家全局共享变量,其他仅限于各自范围内有影响
      def xGlobalArgs():
            return {}
      
    2. pytest 的 test 依赖及传值,这里 testCASE2 会等待 testCASE1 测试通过再执行

      @pytest.mark.dependency(name="test1")
      def testCASE1(xGlobalArgs):
          xGlobalArgs["token"]="123123123123123"
         pass
      @pytest.mark.dependency(depends=["test1"])
      def testCASE2(xGlobalArgs):
          print(xGlobalArgs.get("token"))
          pass
      
  • 聊聊团队对用例的想法 at 2022年08月19日

    同意@Ouroboros
    用例要看覆盖的是否全面,至于深度?????

    当然如果能覆盖全面的基础上,让用例的可阅读理解及执行效率上做点文章,才是更优的用例。

    至于为了敏捷选择脑图作为用例方式,那更考验设计者是否写的清晰了,
    业务后续维护转移其他人测试时,好不好其他人理解呢?

  • 感谢大佬的补充。

    但目前的现实是:道理都懂,但实践上无所适从。
    所以想先听听大家的想法和经验,先从一些好实践的地方入手来看看。

  • 谢谢大家的分享:
    我看下,代码覆盖率使用的可操作确实不是很强,但以下部分可以尝试:

    1-各个版本增(变)量的的代码可以尝试代码覆盖率,测试可以进行用例的对应逻辑的查漏
    2-染色代码和对应接口进行关联(需要找到可用工具或方案),可以进行后续代码变动自动关联测试接口脚本测试

  • “变更部分”:这个有什么工具可以自动获知吗,还是可以有配套的 diff 工具来做

  • 对 “每个自动化所覆盖的代码片段进行了关联” 这个比较感兴趣,关联是怎样具体实现的呢?

  • web 端 ui 自动化的疑问 at 2022年08月12日

    既然要从界面上操作,那还是不要用无头模式。
    至于 jenkin 去运行不能打开浏览器页面,可能的原因是 jenkin 以后台服务的方式去启动的
    我都是用命令去启动 jenkins 的
    但是可以试试 google 到的一个回答(我没试过)

  • 我写本文的初衷是讨论怎样避免一些测试遗漏,比如这里:

    1. 是不是用例设计的时候可以就避免了
    2. 或者能不能先去了解开发写的代码设计、sql 一类 等等

    歪楼了...

  • 这个是本职工作呀

  • 我在原文加上了补充说明,这样就能明白了。
    另外,价格是从第 3 方获取的,但有二次校验(UPC、产品名...校验),校验不通过会被删除。
    为啥要保留历史数据?这个是为了 BI 分析用的,看价格的历史变动用的。

    至于增加一个生效标志,这个设计完全看开发的个人设计喜好了:

    • 加这个标志需要在插入时多做一些步骤
    • 不加的话则需要查询的时候麻烦些

    对于测试来说,符合需求就 OK 了,只不过这里开发耍了一个 “技巧” 耍撇了...

    至于责任,那是因为我也是测试,遗漏 bug 时首先会考虑自己的问题,而把责任推给测试那就言重了,毕竟 BUG 是开发写的。

  • web 端 ui 自动化的疑问 at 2022年08月12日

    如果是想绕过这些步骤,倒是有个建议:
    1、上传:可以通过 js 操作元素/利用 requests+ 当前 driver 的 cookie 发送上传请求
    2、拖拽:这个通过 js 实现元素的 dom 操作

  • 可能我没说明白或你没细看:
    那个开发给我的参考 sql 就是他开发的列表用的,那个 sql 会造成上文举例的那个 SKU 无法显示,这样不是 BUG?

  • 35+ 测试人员生存状态 at 2022年08月10日

    同龄,同年毕业,同工。
    只不过是南京 ,IT 环境及薪资可是一言难尽。

  • 嗯,其实我建议用正则替换是有原因的,这类空格其实都满足正则里的\s:

    所以用正则替换\s 为常用的空格 (chr(32)) 比较具有普遍性

  • 其实很简单,你打印下下这两个字符串的字符 ascii 就可以看出不同了

    a = "xxxx yyyyy"
    for c in a:
        print(ord(c))
    

    如果想要相同可以用正则替换掉对应字符

  • 关于一个时区转换的 BUG at 2022年07月25日

    使用 UTC 就不用考虑这个夏令时了

  • 关于一个时区转换的 BUG at 2022年07月22日

    OK

  • 嗯,这个是常见思路。
    其实可以用@jerrylizilong的方法,提前下好一些版本备用。因为 “墙” 的原因,chrome 更新和 driver 下载不是那么方便

  • 一个脚本多端运行时需要考虑到部分运行端的 chrome 还是老版本的情况:
    所以建议是先获取到运行端的 chrome 的版本号(大版本号,比如 103.1.201 就是 103),然后去判断是否有满足版本的 driver,没有的话再去下载。
    比如 windows 端的 chrome 版本号可以从注册表中获取reg query "HKCU\Software\Google\Chrome\BLBeacon" /v Version

  • 看完,就这个姑娘回答得很勤劳

  • 这个时候,这个你画个数据流向流程图用例就可应付了
    http://testerhome.com/topics/33072

  • 大部分都是对公业务,非个人的居多,而且这些第三方的真实账户申请流程、准备的资料都很复杂,测试作为业务下游去搞很麻烦。

    并且这个问题的矛盾点在于:
    这种线上验证的真实账户该不该由测试来提供和申请?
    是不是产品人员提供更合适,毕竟他们作为需求提出者、外部对接方和验收方?

  • 性能只受 I/O 影响?你确定指数型正则解析不影响 I/O?
    具体案例见二楼回复

  • 那你认为的性能测试是什么?用个工具压一压?
    错误的代码(这里是正则),会造成服务器或浏览器异常
    这种类似白盒性质测试,会提前发现性能问题

    至于正则造成的性能故障,有很多现实实例,比如:
    https://zhuanlan.zhihu.com/p/456349063

  • 不确定你认为的动态 sql 是怎样的,但 flask 中一般推荐 orm 工具 SQLAlchemy 集成。
    如果想实现动态 sql 也简单,如下

    query=db.session.query(x1,x2,x3).filter(公共条件)
    if 情况1:
        query=query.filter(条件1)
    if 情况2:
        query=query.filter(条件2)
    rst=query.order_by(排序).all()