• windows 上用 appium 经验比较少,这个还真不知道。

    看起来是在检测 usbmuxd 组件的时候报错了,我猜是 appium 调用 iOS 自动化时需要用到的一些功能(比如获取设备上已安装应用列表)时调用了这个组件,结果发现这个组件在报错所对应的路径不存在,所以报错。这个组件是 xcode 、itunes 等和 iOS 设备通讯的底层通讯协议暴露的 socket 入口(可以理解为类似日常网络连接里的 tcp 连接层),这个路径看起来是 linux 的路径,不确定 windows 上是不是这个路径。

    建议也看下堆栈,对应看看 appium 源码此时在做什么操作?

    另外,也建议把你启动 appium desktop 里面的步骤和各个配置也发下吧,信息太少没法判断。就像用户和你说我登录不上这个应用了,根据这个线索你是无从定位和给反馈的(手机问题?运营商问题?应用问题?服务端问题?都有可能),只能继续问用户各个更具体的信息。

  • 把你设置的完整的 capabilities 发出来一下?

  • 运行脚本中,需要配置 webDriverAgentUrl 给 appium driver ,才会不触发 appium 内置的用 xcode 启动 wda 这个流程。否则只要触发这个,appium 就会找 xcode 。windows 没有 xcode ,自然跑不下去。

    详细文档可以参考:http://appium.io/docs/cn/advanced-concepts/wda-custom-server/(文档里一大段怎么用 java 控制 wda 代码示例不用管,就看最前面的说明和最末尾的示例就行)

    最关键的代码:capabilities.setCapability("webDriverAgentUrl", WDAServer.SERVER_URL);

  • 第二点没太明白。固定执行 Login 操作,里面判定已经登录过就什么都不做,没登录过就进行登录。这样后面的 case 都是基于已登录来进行,是否可以?

  • 建议可以买本《google 测试之道》看看,虽然已经是比较老的书,但还是有一些借鉴意义的。

  • 赞,已 star

    这个会有什么限制么,比如 iOS 版本之类的?

  • 个人能想到的:
    1、从生产导入一部分数据到测试环境,提高数据丰富度。
    2、测试完毕上线后,在生产环境再验收一下,并加上监控持续观察是否还会有问题。

    也建议梳理下出现过的数据不准确问题,看根本原因是什么(历史数据不符合规范?逻辑中没有兼容所有历史数据情况?),对症下药解决。

  • 不客气,出来了就好。

  • 内网带宽多大,这个最好问下运维吧。正式的机房内部网络达到 10Gbps 也不奇怪。

    按照你目前提供的信息,暂时也没能想到啥原因了,看了下官方文档也没有具体指标计算公式,估计得看源码才能找到答案了。不过有个有趣的地方,为啥下面绿色的发送量好像和你 A、B 的比较一致?

  • 打开浏览器的开发者工具,看下 network 里返回的是什么,以及 console 有没有报错?

    另外,你这里说得有点太简单了,很多细节没提及。麻烦把具体步骤,最好是配置好的整个 vue 项目分享一下吧?

  • 可以参考以前其他人的测试方案来写,快速写完初稿后让有经验的同事给点意见呗。

    凡是总有第一次,闯过去了就会发现其实没什么。

  • 从软件底层来看软件 at March 15, 2021

    底层了解不多,学习了。

  • 最后一个是 agent 所在的整个机器的网络接收量,你前两个都是仅 java 进程的网络 IO 接收量。

    确定除了 jmeter,没有其他接收量比较大的程序在同时跑吗?

  • iOS 的沙箱安全机制,应该没有暴露可以清除应用内所有数据的入口,除非应用自己做这个功能。

  • 感觉好久没见到自己做排版的简历了,好多时候看到的都是直接招聘网站根据登记生成的简历,一般 2 页纸起步。。。

  • 思路可以稍微转换一下,不一定是传递坐标点击事件来做一机多控,而是传递控件点击事件来做。这样问题 1 就可以解决掉了。

    问题 3 的话,启动应用用命令启动(直接启动 activity )也可以解决。

    推荐看看 solopi 一机多控。

  • 不知道你后端是什么程序,如果是 Java 的话可以看 jvm 启动参数以及应用内的 properties 配置。

    然后操作系统本身也有最大网络连接数这类配置的,可以百度看下,windows server 的我不大了解具体在哪里配置。

    另外,从你这个图看,瓶颈应该不是资源消耗,有可能是应用内部机制引起的耗时,比如并发时等待锁释放之类的。推荐用 jconsole 抓取下整个 api 处理内部各函数的耗时情况以及看下会不会有锁之类的机制。

  • 有个问题,你是增加线程数后,提升不了 cpu 利用率,还是性能(TPS)也提升不了?

    非 cpu 密集型的逻辑,cpu 提升不上去不是挺正常的么?

    PS:建议也看看被测系统的环境配置,比如最大线程数、最大网络连接数之类的,是不是这些限制住了系统的发挥。

  • 都可以。

    具体方法可以在社区用 覆盖率 关键字搜索下。

  • 2 年前基于 Spring Cloud Contract 尝试过做契约测试,发现收效不大,当时出发点是尽早发现上下游契约不一致问题,但实际是有些细节还是得联调才能确认,光靠 mock 数据作用不大。
    而基础的入参、出参、是否必填、值是否在可选值范围内之类的,开发把契约调用都封装成 rpc 调用后这类都不会有问题(强类型语言本身编译器就会强校验值类型这类信息)。

    代理和路由这个是个不错的扩展,可以在不侵入应用的情况下控制应用间通讯。期待后续楼主分享实际落地相关的经验。

  • 把你网页的请求和 Jmeter 请求都发出来看看?包括 Url、http header 和 http body

    两个结果不一样,大概率是你请求内容就不一样引起的。

  • 先了解清楚开发多做改动的原因?

    说的都是结果,没提及原因不好对症下药。开发也是人,一般不会无缘无故加代码的。

  • 同学,你跑题了。。。

    PS:长期来说两门都需要,python 写脚本多一些,java 看开发逻辑和开发平台多一些。既然喜欢 java ,可以先深入 java ,后面有需要再了解下 python 。Java 熟练后上手 python 会快很多。

  • 建议去百度文库之类的地方找?

    互联网公司基本都不会有这种超级完整的软件测试方案,写起来太花时间而且没啥用。

  • 这个不是可不可行的问题,是怎么让它变得更可行的问题。

    效率会有一定影响(切换项目可能要花点时间回忆细节,也需要自己平衡好两个项目的时间占比),刚开始加班是避免不了的了。足够熟练之后相对会好一些。一般这种并行,都是一大一小的,一个大的花 60% 以上时间,一个小的 40% 左右时间。