接口和协议组成 游戏客户端 邮件逻辑测试的例子

陈子昂 · 2015年12月25日 · 最后由 往事随风 回复于 2020年05月18日 · 2965 次阅读

介绍在本地读取客户端代码和本地插桩 用于辅助测试的一个例子
脚本是.lua 的,markdown 里我先选择用 ruby 的
请求邮件代码:

local Mail = class("Mail")
function Mail:Init()
end  
省略代码…

-- 请求邮件列表 客户端逻辑
function Mail:requestMailList()
    local msg = "cQueryMail "
    app.msg:startWait("sQueryMail")
    app.net:sendMsg(msg)
end

cQueryMail 和 sQueryMail 结合在一起就可以用来做一些耐性的测试.
领取附件奖励代码

function Mail:requestItems( id ) -- id 邮件Id
    local msg = "cMailAttachGet "..id
    app.msg:startWait("sMailAttachGet")
    app.net:sendMsg(msg)
end

在代码里检索 sMailAttachGet,这样可以了解程序在邮件脚本的客户端逻辑。
领取附件及奖励返回代码:

function Mail:ctor()
    略过
    app.msg:addMsgListener("sMailAttachGet", handler(self, self.onGetMailAttach)) -- 领取附件奖励返回
    self.mailList = {} -- 邮件列表
end

然后根据上面的"cMailAttachGet "..id 去模拟读一个
测试点:其中的 type 是否符合
测试点:时间戳时间是否正确
测试点:参数的返回内容长度和内容是否正确
在后台是这样的

继续检索 onGetMailAttach

-- 领取附件奖励返回
function Mail:onGetMailAttach( ret ) -- id 邮件Id
    if 0 == ret then
        app.event:dispatchEvent("close_OneMailInfo")
    end
end

如果要插桩可以在 app.event:dispatchEvent("close_OneMailInfo") 后面加一行

release_print(" -------- 领取返回"..ret)

备注 cocos 要输出 release_print,需要在 AppDelegate.cpp 加一句

engine->executeString("print = release_print");

可以说这个是一个邮件客户端的一个逻辑性的测试。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 4 条回复 时间 点赞

lua 挺少见的. 为什么选择 lua 做这次的测试自动化语言啊. 你们是游戏公司?

#1 楼 @seveniruby 嗯 子昂兄是资深游戏测试总监。

@seveniruby lua 在游戏产业还是广泛使用的,起源 wow 时代的 lua 应用,然后一些大公司(网易)的推广,其他还被使用的语言还有 php.ruby.erlang。

@lihuazhang = =目前公司是测试经理了,部门人数也少。资深不敢当啊,还在进步学习中。

@ 陈子昂 怎么突破点点点的阶段,求指点

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册