献上膝盖
这个真的很棒,学习了
idb ui 系列的命令没法在真实设备使用,所以以前用 wda 的短期可能还要用 wda。
目前真是设备上的测试,idb 是比较好用的 XCUITest 启动器和辅助工具。原生的 XCUITest 完全可以解决应用的自动化不需要使用 wda,纯个人经验。
知道原理可能更难过,因为不会做。
另外,用 Dell Mobile Connect 吧,这个不收费。
不过最近的技术发展是很快的,分享一些个人的研究心得吧。
我可以看到你实现了一个简单的 socket 客户端,但是用于自动化测试或者压测都过于简陋了。在游戏自动化测试中,你需要处理服务器主动推送的消息,例如同场竞技的其他玩家的操作同步,以短连接的同步通信思路去设计测试框架其应用范围是及其有限的。在压测中,你需要学会引入异步 IO 来增加目前压测工具的并发处理能力,尝试用 gevent 或者其他异步 IO 网络库去实现压测客户端。更重要的是无论是自动化测试或者压测,让通信过程顺利运行起来只是一部分工作。游戏的接口返回值真的可以满足功能验证的要求吗?最后,游戏测试技术落后 5 年并非是所有游戏测试从业者的感受,游戏测试有其特殊的情况存在,引擎技术方案不统一、各大公司间的直接竞争关系导致游戏测试技术很难直接参照和公开交流。但或许只是我的自我感觉,归根结底像是王者荣耀、阴阳师这些游戏的测试技术水平到底是领先还是落后,谁又说的清呢?
这行代码设置的 cookie 是类似这样的东西:
{
"Name" : "foo",
"Value" : "newName",
"Domain" : "foo.com"
}
打开浏览器 F12,进入 application,查看一下 testerhome.com 的 cookie 就能稍微理解一下它们的含义
.exec(getCookieValue(CookieKey("foo").withDomain("foo.com").saveAs("newName")))
确实是体力活,说到这,我以前还用过一种很狂野的写法压缩代码量。都是黑历史了,不过可以贴出来供大家乐一乐
def use_item_42413(response):
locals().update(response)
try:
bag_type != 2 and get_bag(2) and 1/0
bag_type == 2 and item_list[42413] < 100 and add_item(2, 42413, 100) and 1/0
use_item(2, 42413, 100)
except:
return False
简单解释一下就是:1.通过把字典塞到 locals() 里,然后就能直接把字典的 key 当局部变量取值 2.用 and/or 组成的条件链省去写 if/else 和调整缩进的时间 3.条件链里面不能通过 return 跳过后面几行的语句执行,用了 try/catch 和主动抛异常的取巧办法。