• Linux 下面也有虚拟打印机,也是输出 PDF,Ubuntu 自带,叫 cups

    sudo apt-get install cups
    sudo lpadmin -p CUPS-BRF-Printer -E -m 'raw' -v file:///dev/null
    sudo lpadmin -p CUPS-BRF-Printer2 -E -m 'raw' -v file:///dev/null

    这几条语句就是安装跟加载虚拟打印机的,CUPS-BRF-Printer 是打印机命名,看着改就行

  • 我也划一下

  • 看了下楼主的需求,跟我们之前跑 UI 自动化的时候拿 cookie 的强依赖有点像,因为分环境,所以我们必须拿 cookie 才能继续执行,那代表拿 cookie 的操作属于各个模块的强依赖,所以我们单独抽出一个模块,专门分配给存在这种强关联的用例。
    剩下的,比如 ABC 模块,只专注剩下的业务,至于测试报告中是否展示这个拿 cookie 的过程,在获取 cookie 函数里配置开关就好了,不知道我们组的思路符不符合楼主的需求

  • 有一点不是很理解,推行 UI 自动化的初衷不就是为了覆盖已有的旧功能,方便缩减回归测试的时间吗
    那就不需要重新编写测试用例了,如果有用例库保存以往的用例,那直接将功能用例转成自动化用例就可以了
    另外测试报告我都是用 pytest+allure 来生成 html 的,也是最常用的那一套

  • 对于楼主的看法,其实我也有些疑问想提问的,应届新人,有说的不对的地方欢迎随时指出
    我们公司当前业务线没有自动化团队,所有自动化用例都是组内同学编写,我是负责了 iOS 相关的 UI 自动化编写。结合现在的状况,有以下几个问题没有很明确答案
    1、跟楼主说的一样,每次版本迭代的 UI 自动化回归,基本不会发现问题,但 app 端的回归测试,本身就需要覆盖这一块内容,按照楼主所说,废弃跑 UI 自动化,转而使用 fastbot,那是不是代表也不需要手动进行某些功能回归了
    2、fastbot 我个人也有在使用,因为主要负责 iOS,所以我结合了 grafana 和 instrument 协议,搭了一台性能监控平台,让 fastbot 跑,然后企图发现一些内存泄漏、性能瓶颈,但发现自己对于捕获到的折线图不会分析😂 我也在反思这一套有没有必要落地,因为只在本地跑,还没有合并代码

  • 哈哈,我全是靠平时分给拉上来的,后面压根不敢碰这东西

  • 从问题上来看的话,其实可以拆分多个层面回答,从楼主的回答来看,感觉不够全面,面试官应该不会特别满意
    先对问题拆分:如何开展测试&如何快速提取测试点
    再细分被测点:APP/Web/服务端/硬件
    1、如何开展测试:
    首先肯定是需要参与需求评审,在评审过程中,需要结合新旧功能,查找新功能是否存在强关联旧功能点,如果存在,需要及时指出并商讨实现方案,同时这也会给开发同学敲一下警钟,能保证到提测质量(甚至有时候忽略了强关联,会导致测试过程发现已有问题,导致延期风险,我之前遇到过)并且最好能在需求评审会议中评估好提测时间和确定发版时间
    其次就是进行测试评审,测试评审的目的在我看来是为了统一三方理解,也就是产、研、测必须意见统一,同时抛出自身在编写用例过程中的所思所想(比如该功能在需求文档中没有明确标出详细逻辑,需要补全逻辑,丰富用例)
    最后就是进行系统测试,后面的都比较好回答,就不详述了
    2、如何快速提取测试点
    因为不同的技术关注的测试点不同,所以才需要细分被测点,并且提取测试点的手段通常也就用到等价类、边界值、正交法、错误推错等
    App:最基本的从功能、界面、易用性入手,功能点优先级肯定最高,当然提取测试点的手段通常会是等价类和边界值,但同时也必须需要考虑到异常场景(这是以前实习的时候老大教的),最后就是观察一下 App 的性能,设备的 CPU、GPU、内存等情况的优先级可以往后放,但需要站在用户的角度观察,目前的渲染/加载,是否存在问题,能否优化等。最后就是兼容性,这个需要看用户的体量,小公司一般只会覆盖到主流机型,而大公司有时候会选择外包给其他专业公司(具体回答看个人吧,兼容性方面我在工作中也比较少测,除非用户有反馈)
    Web:跟 App 相差不多,就不赘述了
    服务端:服务端一般只要不是做单元测试,那注重点一般会放在接口层,或者中间件,
    从功能上而言:确保接口可用,以及返回的响应体内容符合预期(理解为正确的断言),还有是否存在接口兼容性。
    从性能上而言:如果有明确的性能指标,就需要对本次需求内容做全面的性能测试(并发测试、负载测试、压力测试、失效恢复),主要看性能指标以及产品的意见,当然最好自己也能给出意见(应该算加分项?)专业的测试人员还需要关注是否存在慢 sql,并进行 sql 优化(性能对我个人而言还是有点难度,暂时给不出什么好的回答)
    从安全上而言:是否有按照要求进行安全加密,在整个传输过程中是否存在敏感信息的明文等
    硬件:虽然我是物联网毕业,但我的数电和模电学的是一坨答辩,就不献丑了
    最近也在准备和充实面试的问答,这个问题有一些自己的见解,也希望我的见解能抛砖引玉,有大佬能指点一二

  • pytest 打印用例结果问题 at 2023年03月03日

    pytest 用例执行过程都分为三段:setup、call、teardown,在代码中好像没看到统计的是哪一阶段的数量,建议是定死读取 call,这样应该才符合你的预期

    @pytest.hookimpl(hookwrapper=True, tryfirst=True)
    def pytest_runtest_makereport(item, call):
        logging.info('------------------------------------')
        out = yield
        report = out.get_result()
        if report.when == "call":
            logging.info('测试报告:%s' % report)
            logging.info('步骤:%s' % report.when)
            logging.info('nodeid:%s' % report.nodeid)
            logging.info('description:%s' % str(item.function.__doc__))
            logging.info(('运行结果: %s' % report.outcome))
            if report.outcome == 'passed':
                result['passed'] += 1
            elif report.outcome == 'failed':
                result['failed'] += 1
    

    这是我一段 hook 代码,用来在日志里输出当前步骤和执行结果,并且在最后统计当前 pass 数和 fail 数,里面我只拿 call 的过程,应该对你有帮助

  • 从这个报错来看似乎问题出在 windows 上
    1、Mac 连接 iOS 需要 xcrun,也就是得安装 xcode
    2、xcrun 在 windows 上是没有的,所以需要安装对应的驱动(这个是 AI 告诉我的)

    因为我的日常开发环境是 Mac,所以可能帮不了太多
    然后这是我的参数设置,我看到你的参数中有比较多没必要的参数,是可以删掉的

  • 其实想保证后续代码的可扩展性、用例解偶和环境准备的话,建议还是用 pytest 或者 seldom,毕竟上面这两个框架可以轻松编写钩子函数和 setup、teardowm 的方法或者类
    unittest 一般到后面都会被替换的。。