• airtest 也可以用命令行跑吧?具体官方的博客啥的都讲很清楚了我记得。
    而且先启动啥之类的手工操作,airtest 也完全可以胜任啊。

  • 感谢!

  • 大佬,能分享下接口测试平台的大致功能吗?现在能想到的问题:
    1.接口测试环境如何维护,docker 还是什么的?
    2.接口的用例是如何生成、编写的?
    3.接口测试平台,是否相当于是客户端的一个简化版本?只有收发协议、客户端发送心跳等
    4.既然涉及到自动化,那结果如何验收呢?直接在用例里加上断言?
    5.接口测试什么时候会执行?什么时候编写用例?
    7.执行策略,每次都是全量验证,还是增量部分验证?

  • 你提到的两点,从个人的经历来看,
    1.测试环境部署。这个我觉得有必要测试自己来搞定。当然了,肯定会需要花时间、人力跟程序沟通,但如果不让测试部署,那么版本控制就无从谈起。毕竟,我还是很认可《游戏测试精通》这本书里提到的 “不要相信任何人” 的原则。也经历过开发做版本控制,结果就是一团糟,而且开发认为自己做了不该他们做的事情。
    2.回归测试的路径覆盖率,个人认为,首先是根据对项目的熟悉程度以及和开发沟通好,确认需要验证的内容(过程确实很头疼),所以如果版本稳定并且团队能力到位的话,可以适当的将自动化测试利用起来。但目前还没有哪个团队真正的能在项目中实践的。

  • 客气,难得看到有能交流的帖子。
    其实集群这个我也没做过,但如果要搞自动化的话,集群肯定得搞的。
    说白了,集群就是用一个系统来管理自动化要使用的各种设备,比如测试机什么的。
    如果要搞自动化的话,集群是必不可少的。有了好用的集群,才能更好地应用自动化

  • 看了坛子里最新的几篇帖子,感觉挺好的,就是参与分享的人少了点,要是能多点就更好了。
    自动化、性能、安全,每个都是一大块,一步一步来吧。先从自己手头的工作做起,用 python 之类的脚本写一些解决日常工作的小工具,这样能学以致用。
    然后推荐看看 Airtest 自动化的工具,可以认为这玩意就是手机端的按键精灵。至于性能的,坛子里其他帖子有详细介绍的,去看看吧。

  • 分公司吧?你在腾讯网易这种公司做测试,钱会少么?
    做了这么几年测试,个人感觉,测试地位全靠自己拼出来的,你懂得越多,你提的问题越有用、越重要,才能在团队中起到更大的作用,地位自然就上去了。
    不会代码,就得转行?管理不行?转策划不需要学习?真就全靠抄呗?

  • 这个还是看实际情况吧。
    如果公司的 QA 有能力、有责任心,那一般来说都是由 QA 来主导,提出问题->探讨方案->开发落实->QA 验证->版本发布。
    毕竟 QA 就是为了预防线上产品出问题而存在的么。
    但如果 QA 没这方面能力,只是单纯的点点点,那即使你想做,很多专业知识欠缺,也很难做好。最多就是能想到会有外挂问题,但什么样的外挂(内存、加速、改包)不清楚,怎么解决不知道,那最终也很难给出解决方案,如果项目组里没人重视,开发甚至会觉得你想太多,给人家加没必要的工作量都是有可能的……

  • 十分赞同你说的竞争这块。
    毕竟就算再怎么优秀,unity 等引擎的发展也只是为了更方便的让策划做游戏。但 web 就不一样了,至少像 chrome 这样的浏览器,感觉本身就是一个集大成的工具,不仅能给客户用,也能给研发用。
    或许未来游戏行业能做出一些更好的规范或者标准,这样才会有更多优秀的工具出现吧。

  • 就我所知,首先,一般刷新时间是服务器时间。

    其次,关于刷新机制,其实是在服务器上配置了一个定时任务,到了指定时间点就会触发对应的事件,对一些数据去做一些清空、重置的操作。所以,原理上只要跟后端确定好刷新的时间以及会被修改的数据,针对做测试即可。

    所以一般测刷新的话,有两种方式:
    1.改服务器的时间
    2.改服务器配置的时间

    1.改服务器时间
    服务器框架机制不一样的话,操作也不太一样,比如我之前接触过的 C++ 服务器,只能先停服,然后修改本机时间再启动服务器,以达到修改服务器时间的目的。
    但后来接触的 php、java 的服务器,直接修改时间即可,就不用再重启服务器。要跟后端开发同学确认清楚,否则很容易在这方面浪费时间。

    2.改服务器配置的时间
    一般来说,不太建议改这个,毕竟之前跟后端开发也聊过,说改这个风险太大,服务器框架如果足够清楚,没有涉及其他功能,那改配置还好,否则很可能牵一发动全身。

    有一点不太明白,既然是凌晨 5 点刷新,为啥要关注 0 点?0 点这种一般只在黑盒阶段看一次就可以了吧?

  • 难得看到有游戏行业的测开发帖哦~
    基于 unity 的话,unity 的 editor 还是挺好使的(当然,还是看 unity 版本)。曾经自己也做过类似的小工具,用来做 GM、简单的接口测试等。
    就我了解的,目前行业内有公司在做基于 Airtest 搞的自动化测试框架,但方向我不太认可。那边主要是用 Airtest 来把尽可能多的黑盒用例写成自动化脚本来跑,而且暂时只有上线很久的项目会写,新项目因为得不到项目组支持(需要接 poco sdk,还有部分二次开发)所以没做。而且那边基本都是卡牌项目,Airtest 的话,纯 UI 的东西操作起来倒是没太大难度。

    然后关于自动化这方面的东西,就我目前了解的内容,UI 的方向我认为你已经做了大部分了,UI 回归脚本、性能测试是主要方面。
    如果还需要补充的话,就是根据不同的项目,做定制需求的自动化脚本。比如重复打开各个界面,看客户端的性能啊(主要是看是否有内存泄漏,当然,也是跟项目有关。)

    接口方面其实能做的更多。当然了,不清楚你这边是什么项目,而且也没真正做过接口,所以不确定做的话会做成什么样子。但如果可以的话,根据协议文档,针对每个协议编写用例,然后执行用例,各版本在测试环境都能稳定回归,确保协议方面 ok。协议这方面呢,暂时能想到的是参数的类型、个数、等价类、边界值。比如曾经的项目里遇到过把商城礼包的参数类型从 1 改成 0.01,然后这样玩家就能无限刷这个礼包。

    然后可能的话,最好能做成自动化集群。

    然后协议这方面呢,如果能搞定一个自动化的协议框架,那么也就能搞后端的压力测试了。针对可能产生压力的场景,用写成一系列的协议机器人去压服务器。

    暂时能想到这么多,有不对的地方还请大佬们指正~

  • 我跟你类似,以目前的状态来看,暂时先从黑盒目前工作中遇到的问题入手。
    比如,我们项目测试环境搭建比较繁琐,那考虑如何用 python 写一个脚本或者工具之类的,能一键搭起测试环境。
    再比如,每次合服时,都需要从线上环境拉取数据(当然不是真实的线上环境,DBA 那边会把线上数据恢复到一个测试环境里,我们再进行操作),这个操作每次都要做,而且每次做起来都很麻烦(要临时写各种 SQL 语句啊之类的),自己就写了一个一键拉取需要数据的脚本(当然,期间自己自学了一些 SQL 语言)。
    诸如此类,一点点从小工具做起来。
    下一步,自己打算了解客户端是如何发消息给服务器,明白了这块之后,尝试做接口的自动化测试。

  • null at 2019年07月01日

    啊,楼主如果参加了今年的 MTSC 大会,应该就知道自动化在鹅厂已经做到了什么地步了。。
    内存什么的对他们来说已经是信手拈来了。
    参加了这次大会,才了解大厂是如何做自动化的。但也意识到,这也只能是在大厂了。。

    感谢楼主分享这么多。
    这次大会上,行业一致认为,自动化只适合做回归测试,虽然鹅厂大佬已经开始做自动化探索测试,但目前来说似乎并没有特别好的实践。

  • 该怎么说呢,你这两年 5 段工作经历,赶上我这工作 7 年的了……
    最初做端游时候,一个项目立项期间,也经历过 9117 什么的,累是累,但调整好心态,每天都有收获,每天也都过得很充实。
    总的来说,就是当有收获的时候,累点也能接受(个人看法)。
    你现在迷茫,是因为眼界太窄,知道的、看到的东西太少。

    说来惭愧,我这工作了 7 年多的,到现在职业规划也是一团糟。曾经和你一样,也是什么都不懂,做了两年测试,觉得测试没啥可做的了(现在想想,当时自己太天真),就尝试去转开发,而且运气不错还转成功了。干了半年,发现除了能做客户端的 UI 维护之外,其他的能做的不多,虽说主程也一直没催我让我干别的,但那家小厂没啥几个项目,就是做好一个换皮,程序也没几个,996 的节奏,时间久了觉得没提升、没生活(现在看来,当时这个有点想的多了感觉),就离职了。
    后来阴差阳错的,又做回测试,在一个做得比较烂的项目里做测试,主管经常不在,项目底子也烂,天天加班测不完的 bug。最后坚持了一年多,心灰意冷之下,离开了。之后一个多月没工作,很失意~不知道自己想做什么,该做什么。思前想后,觉得测试也没啥不好,也没错。既然是正确的事情,为啥不去坚持下?就做到了现在。

    后来呢,也算是机遇吧,遇到了赏识自己的领导,在团队里做的还算顺利。但似乎每个项目做的久了,就会积压各种问题。。
    看到你这篇帖子,我有点恍然,之前总觉得,自己想做很多,想做测试 leader,想做测试经理,想做测试开发,也想做黑盒专家。现在看来,想得太多,就跟没想一样。所以,自己主要想往两个方向发展,如果有机会,还是希望能坚持做测开,但如果没机会,就往测试 leader 的方向发展。

  • LOL 时间显示依赖本地时间 at 2019年07月01日

    是 bug,但大部分团队不会解决。
    原因:
    1.bug 影响范围太小,可能只有个别玩家才会遇到。修改本地时间,并不是所有玩家都会做这种事,应该只有很少一部分玩家会做。
    2.解决 bug 并不能提供更好的收益,但为了解决这个 bug,需要耗费的人力、时间可能也不会很少。

  • 不知道还有没有人看,目前在用 airtest 框架,自己的华为荣耀 V10,系统是 EMUI9.0(安卓 9),在跑自动化时失败了。看错误信息,似乎是因为输入法的问题,自己装了搜狗,但禁用搜狗之后,默认的百度输入法似乎也存在同样的问题。

    以下是报错的部分 log:
    airtest.core.error.AdbShellError: stdout[b''] stderr[b'\r\nException occurred while executing:\r\njava.lang.IllegalArgumentException: Unknown id: com.sohu.inputmethod.sogou/.SogouIME\r\n\tat com.android.server.InputMethodManagerService.setInputMethodEnabledLocked(InputMethodManagerService.java:4301)\r\n\tat com.android.server.HwInputMethodManagerService.setInputMethodEnabledLocked(HwInputMethodManagerService.java:460)\r\n\tat com.android.server.InputMethodManagerService.handleShellCommandEnableDisableInputMethod(InputMethodManagerService.java:5278)\r\n\tat com.android.server.InputMethodManagerService.access$1800(InputMethodManagerService.java:200)\r\n\tat com.android.server.InputMethodManagerService$ShellCommandImpl.onCommand(InputMethodManagerService.java:5069)\r\n\tat android.os.ShellCommand.exec(ShellCommand.java:103)\r\n\tat com.android.server.InputMethodManagerService.onShellCommand(InputMethodManagerService.java:5035)\r\n\tat android.os.Binder.shellCommand(Binder.java:642)\r\n\tat android.os.Binder.onTransact(Binder.java:540)\r\n\tat com.android.internal.view.IInputMethodManager$Stub.onTransact(IInputMethodManager.java:494)\r\n\tat com.android.server.InputMethodManagerService.onTransact(InputMethodManagerService.java:1601)\r\n\tat com.android.server.HwInputMethodManagerService.onTransact(HwInputMethodManagerService.java:239)\r\n\tat android.os.Binder.execTransact(Binder.java:739)\r\n']

    后来发现似乎是因为 airtest 要用这个 Yosemite 的 apk,装了之后,在应用列表里没找到,反复安装之后,又一次卸载成功然后手动重装上,就好使了……

    当然了,各种开发者模式啊,安全输入啊,都去掉了~

  • 话说,我如果想用 uiautomator2 把本地硬盘里的 APK 装到手机上,应该怎么做呢?

  • 移动弱网测试方案之一 at 2017年11月04日

    几年之前,在测端游的时候,用这个软件模拟过弱网进行测试,但后来不知道为啥,软件突然就不好使了。。
    不管怎么说,感谢分享!

  • 扩展 Python 的 unittest 框架 at 2017年11月02日

    先顶再看!!
    太感谢啦~~~最近正在发愁这个东西怎么做呢

  • 手游测试知识点 at 2017年09月23日

    感谢解答。
    所以说,这个磁盘占用率,实际上就是 IO 咯?

  • 记得大学时候老师讲过:进程是 CPU 进行工作的基本单位,而线程则是进程组成的基本单元。
    也就是说,一个进程中至少包含一个线程,而同一时间段一个 CPU 只能对一个进程进行操作?

  • 手游测试知识点 at 2017年09月23日

    感谢分享。
    服务器性能这块,几乎没接触过,这个 TPS 是啥?
    还有,理论上来说,服务器的 IO 应该绝大部分是和数据库相关的,关注磁盘占用率的意义是,缓存之类的么?