• 额 又一个开源了。

  • 这个沙龙目前模式未确定。旁听好像是不支持的。但是会对外开放的。。

  • Golang 版 libimobiledevice at 2021年04月14日

    看了。可好了。

  • 可以把这个业务场景需要哪些最外部的接口都给列出来,然后分析调用的时序 (先调 a->b->c 如果支持多种选路径最短和产生数据压力最大的) 和执行一次,这些接口分别调用次数,写成一个文件
    如果需要程序 mock 一些接口的,需要确定 mock 掉的接口对于你现有流程是有压力的。
    这个就是分析时序的地方,需要分析哪些可 mock,哪些不建议 mock,比如 mock 后把后面整段逻辑都砍了,这样压测也是没压力的,因为一个小的完整链路是空壳子。
    然后根据时序的文件去添加一个字段叫调用频率,这个调用频率会等比缩放到你压测连接数上面。
    还要知道最终压测目标是高频压负载还是只是跑稳定性等等,或者是先压核心模块在全量压等等

  • https://testerhome.com/topics/27935 第三章的链接,里面还有一二章的。如果没看前面的,建议是按顺序看。

  • code 是不够的,可以去断言回包里面的某个字段信息,这个信息可以放到类似 response 区域下面,去 json path 去获取验证内容是否符合。
    response:
    关键需要验证的 key:验证内容

  • python 中获取动态绝对路径 at 2021年04月06日

    一劳永逸,可以在根目录里面加个文件,里面有个变量 project = os.path.abspath(os.path.dirname(file))
    然后其他地方引用这个文件 os.path.json(project,二级目录,xx) 一路拼接过去就行。

  • 其实感觉你已经写出来了啊 unpack 那段。也可能是我没理解你的问题,要不再补充点我再给答复啊

  • 1.一列特别长是把传输的协议变成 Json 了吗,如果用 excel 做,这样是比较长的。
    以前考虑过做一些压缩,就是把必填的不传入,根据场景名传入,后面发现很容易忘记和不好维护。excel 表里面可以用 Json 格式化来稍微好读一点。
    2.参数还需要某个协议的某个数据取值 这个需要存上下文,上文(上面 case)对象存到 redis 定义 key 为 string,value 就是具体对象,比如 guild_key 公会的 key,是用 {{guild_key}}做模板的形式,遇到解析{{}}之前的就从 redis 那边读取。
    3.培训起来是都有成本的,毕竟一开始学代码时解析多层 Json 数据也是难点,怎么填和修改 json 对象才能达成好的效果,建议是多写文档。

  • 插件化是一种思路,但是建议是做内部服务,tapd 做一个 saas,包装 buginfo,关键场景等等定义一系列数据结构。钉钉 api 做一个 saas,中间层一个 pm 服务的 saas(包含多少时间未处理提醒和流转状态等等),这个 saas 去统一调用二边。企业微信等价 tapd,稍微麻烦点,需要拿组织架构权限和再申请一个应用。

  • 目前看来有着一些焦虑和不确定性。
    可以试试往大数据这些风口行业去转,额外找一些兴趣爱好。我目前业余时间在学中医给自己开药和针灸。目前胃病比过去好转不少了。

  • 建议这块用单测的方式,如果涉及一些服务之间的切换的,可以用 lua 调战斗的动态链库。
    写下单测也是一种积累,可以当成一种扫描,分析了下,这块应该不用 mock 会比较好,能 mock 的也只有是否真实进入战斗还是本地虚拟计算一次,其他的还是要触发一次逻辑的。

  • 没问题,有问题随时问,争取本周出个第 4 章

  • 这个是一个处理分包的问题,后面会讲的。
    TCP 是一个包里面包含包头 + 包体部分。当然这个中间有可能还有别的,假定是目前只有这 2 个,包头 4 个字节,里面存放包体,一个完整的包就是包头 4 个字节加里面存放的长度。
    你收包其实是收到多个包,如果把一整段包拆成正确的包,才能进行 unpack(),判断合法就是判断收到的包起码等于一个包头的长度。
    struct.unpack(">i",packet[:4]) 首先如果这个是解包头的话,可以不用那么复杂。通过这个直接可以取里面值(包体长度 比如是 57)。然后切出整个包的 total 总收到长度 - 4-57 后面就是第二个包,然后再切 4 个字节,依次往下一定会到 0 的

  • 本周会出,稍等。最近实在工作上事情比较多。

  • 框架是有明显的天花板的。平台无论是从管理到操作方面比框架有更高的天花板,开源平台一般天花板比较低,平台需要往后面版本做提高能力,但又要规避 KPI 项目。
    平台(前端/后端)和框架也是二个业务,需要规划好 解耦,前后端分离。

  • 对于一些新技术都有探索等,有兴趣的欢迎聊聊。未来可能还有一些旧时产业内明星开发加入,比如业余指导大厂 lua 研发框架开发做为测试开发的加入。
    互相学习的机会也是多多的。

    其他岗位陆续补充中

  • 主要看客户端实现装备和角色相关逻辑用啥写的,因为现在做测试开发就不分析单纯策略的角度了。
    如果是 lua 和 C# 开发这部分的话,还是做单测比较快(单测代码也是对于团队的一种积累)。有啥具体不明白的欢迎随时问。
    写 Lua 时间比较久,如果是 Lua 开发这块的,尽管问。。

  • 就算只是 http 协议还是蛮多细节的,如果学习了。还是尽快用于工作。RobotFramework 可以二次开发的,一些监听可以自定义。。

  • 欢迎一起加入测试开发行业,职业不重要,取决于人。举例:之前网上(脉脉)看到一个人介绍,正职市场销售,自学 c++,兼多家金融核心开发,架构师等等。

  • 我在游戏产业,很真实的,看着测试从三驾马车,一路掉到现在这个地步。如果真的没啥技能门槛了,现在测试地位其实还蛮尴尬的。

  • bim 模型,3d 图形,Three.Js 的吗?这块不会,关注下回答。
    我之前对于 Three.Js 做工具这块,倒是有个想法。

  • 老脸一红,学习中学习中。

  • 是这样的,说下自己个人见解,先从目标一和目标二来说下,先拿 Python 技术栈来说,无论目标一还是目标二都是一个混合多个技术栈大目标,但是测试不仅仅只有这些。
    目标一:
    逐步系列可以参考https://testerhome.com/topics/27935
    如果性子比较急可以参考 https://testerhome.com/topics/24240
    简述下过程,拿 Tcp +pb 举个例子
    协议接口是做得最外层 controller 中得 apipath,这个需要做过 controller 和 service 和 model 得更好理解。
    只是游戏得这个 apipath 是通过几个结构体信息去拼接到一起的,而不是一个直接对象的拷贝。
    通过 socket 去模拟客户端链接服务器,链接后 先需要按项目要求 把包头和包体拼接成一个字节数组(包体部分就是用 pb 序列化 pack 到包体部分),然后通过 send 拼接得字节数组 发送到服务端。服务端开始处理(这部分不用考虑),服务器验证协议发送正确后,回包给客户端,客户端开始进行解包(这部分 Tcp 涉及处理粘包),会收到多个包,根据包里面的命令号去决定是否要解哪个包。
    解包需要做 pb 反序列化 +pb format 变成可读的 dict,dict 里面需要取出一些变量存储内存中,其他地方可以用到。(这个就是所谓得上下文,也是基础级别得)

    目标二:
    jmeter 做压测,支持的协议是需要开发 Java 转换成 Jar 再载入进去。并且 Jmeter 还需要对设置进行优化才能提供到生产那边。Python 来说 Locust 似乎也是不错的选择,原来开源了 Tcp+ 非 zeromq 版本的,后面删了。
    你可以先试试 Python 栈的这个,做压测需要了解网络模型和异步 task。
    目标二建议有一定基础项目,可以读源码解决问题时再开发做。

    Python 可以先集中到一定阶段后,再建议换一门语言,Java 和 Golang 都是不错的选择。
    Python 之前有个一个小标准,建议可以参考下,之前只对自己有这个要求,这样才能再开发上面得心应手,数据结构设计和运用时可以心到手到。
    1.各种数据结构转换 和任意位置插入,删除,查找。(面向对象,就是知道对象是啥,如何转换对象进行衔接,用别人的 Apier 和自己写 api 这个是最基础的)
    2.熟练掌握类,类动态增改复位对象,类里面成员函数,类变量,实例区域里面得对象存储起来,在上下文中如何使用,了解时序的概念。 python 是推荐用面向对象编程得语言。1 和 2 最好都要做到不查资料就能写。
    3.掌握有限状态机和标志位写法。(2,3 二条可以避免代码是看起来串一起的,这个不影响可读性也不是花式写法)
    4.反射应用熟练,掌握 Python 常用得魔术方法(约 12 个)并且不用查资源都知道返回对象是啥。
    5.掌握 Python 语言核心特性,闭包装饰器,偏函数,列表推导式,字典推导式和 Python 一些便利写法。(推荐看下巴西开发者 写得书)
    6.掌握常规的数据库使用方式并且做过封装,会跨数据库数据和跨表查询(这个很关键吧,后者我搞不懂为啥只要求开发会)

    似乎没看到四大模块中的自动化,其实游戏自动化已经变化很大,只有加了核心步骤和控件就不在原来界面了,才会需要大改。只是换了位置和大小修改,加了非核心步骤,是可以做到维护脚本的。

    自动化本身跑的就是功能测试用例,可以做任何你想得到得结合都行(我自己规划组件数量可以有 70 个,目前所效力得公司才做了 6 分之一不到。)
    e.g 自动化不想跑新手引导,可以下线调用接口测试那边跑完新手引导,也可以修改数据库后重启服务,获得标志位,再次上线。

    也没有看到持续集成 CI/CD 分别是 2 个东西,内容还是挺多的。Python 对 Jenkins 库 Api 支持也是极好的。
    工具才是大头吧,工具对比四大模块比例是 7:3 设置更高。

    似乎前期都不用顾虑和思索比较深,先钻进去学吧(这里面不包含多线程/进程,协程,锁等等),就算做框架和产品也不是全部想清楚就不会中途修改和优化的,代码数量和工具项目引发的量变一定会质变,代码写多了用开源才能得心应手啊(手动猫头)
    游戏测试要掌握技术栈可能要比互联网测试多的多,语言才是硬道理,但是测试如果喜欢他钻研进去就不仅仅是职业。回复太多了。有点长,慢慢看。

  • 这个是一个接口参数化的问题,比如用数据库内读取一批数据到内存里面,用掉一个就推出去一个。每次跑的都是第一行数据。
    如果是线上避免污染的,可以接口测试前置开发切换成新环境/新表(这个是比较常见的),接口测试结算任务时删除新表,做相关的复位。