其三届活动网络测试开发大会 PPT合集下载

一、引言

平时,游戏开发商并不会只在一个水道上线他们的嬉戏,接入越来越多的水渠,代表着或然获取更多的用户,但还要也意味着越来越多的连接SDK工作量、工期和支出。一款游戏要有充分的用户,甚至需求衔接30家以上的各样渠道,以保险协调的市场覆盖率。
单个SDK接入流程在一个人有经验的专职客户端程序、一人全职服务端程序员、一位全职QA处理的图景下,供给3天时间才能到位。由此当一款产品面对贰十九个甚至越来越多差别要求的沟渠SDK时,职员资金和时间费用就会激烈增添。

因而我们需求二个通用接口,来拍卖各个渠道的供给,那就是统一渠道SDK接入框架。

PPT下载地址

二 、财富导入

下载地址:https://github.com/typesdk/TypeSdkClient

将TypeSDKLibrary文件夹整个添加到Unity工程中,注意协会须求与截图统一。指骑行戏中与日前导入的台本命名争辨的文本,须求由开发者自行修改争辩的类名

添加后的目录结构如下所示

图片 1

http://www.51test.space/archives/2887

③ 、代码接入

 

1、接入流程简单描述

SDK普通接入逻辑示意图

图片 2

1.1在调用其余API前需先调用起头化接口对SDK举办开始化。

1.2在做到初叶化接口调用后能够调用登录接口,登录成功选取剧中人物进入游玩后须要调用提交用户音信接口。

1.3登录成功后假若供给切换账号,需调用登出接口。

1.4对此有依靠于登录用户的接口,如开发,提交用户新闻接口,供给调用获取用户音讯接口得到有关数据,如user_id….

1.5在娱乐退出时需求调用退出接口。

SDK的连片需求衔接程序员实现接口的调用和回调函数的响应多少个部分逻辑

a.
回调函数的响应重要通过安装监听来达成,具体请看首节(回调函数的拍卖)

回调侦听的事件类型

事件说明

TypeEventType.EVENT_INIT_FINISH

SDK初始化完毕

TypeEventType.EVENT_LOGIN_SUCCESS

登录成功回调

TypeEventType.EVENT_PAY_RESULT

支付结果回调

TypeEventType.EVENT_LOGOU

登出完毕回调

TypeEventType.EVENT_RELOGIN

重新登录成功回调

TypeEventType.EVENT_CANCEL_EXIT_GAME

取消杀应用回调

 

 

 

 

b. 接口的调用首要为以下的接口调用,将会下后边详细讲解各样接口的调用

接口列表

 图片 3

贰 、回调函数的拍卖

typesdkbaselib中曾经提供了先行登记停止全体回调侦听的cs文件:U3DType伊夫ntListener.cs接入方须要在U3DType伊夫ntListener监听类中,依据不相同回调事件实现相应的游戏逻辑。

也足以依照自身索要,在娱乐内适当的地点,参考demo自行注册相关的函数侦听。

注:接入方只好修改以下措施达成相应的逻辑,U3DType伊夫ntListener类中任何代码段建议不要转移,避防影响成效。

局地须要界面响应的监听,请判断当时光景,制止造成游戏逻辑混乱。如,在PVP时检查和测试到用户切换账号。

//初始化完成后回调函数
void NotifyInitFinish(U3DTypeEvent evt)
{
//游戏需要等待此回调才允许调用登录接口。
}
    //登录操作完成后的回调函数
    void NotifyLogin(U3DTypeEvent evt){
        //解析渠道登录成功返回的信息,一般有user_token,user_id...
              //此时返回的结果不能作为登录依据,需要进过服务端验证,取的服务器返回的最终数据。
        //CP方需要将信息解析为CP服务器约定的数据格式转发给游戏服务器,并由游戏服务器转发至TypeSDK Server以完成游戏的登录验证
         string userId = evt.evtData.GetData(U3DTypeAttName.USER_ID);
}
    //更新渠道更新检测完成后回调
void NotifyUpdateFinish(U3DTypeEvent evt){
       //建议等待此更新完成后,再进行游戏的更新逻辑,否则会造成渠道更新和游戏自身更新冲突。
}
    //支付结果通知回调,CP需根据支付返回结果完成相应逻辑,此处为客户端返回结果,不可作为支付到账依据,游戏需等待TypeSDK Server的支付成功回调。
    void NotifyPayResult(U3DTypeEvent evt){
        if (evt.evtData.GetData(U3DTypeAttName.PAY_RESULT).Equals("1"))
{ //支付完成,可尝试延迟刷新账户余额信息。
            Debug.Log("pay finished:" + evt.evtData.GetData(U3DTypeAttName.PAY_RESULT_DATA));
        }
        else
        {//支付失败,或取消。
            Debug.Log("pay failed:" + evt.evtData.GetData(U3DTypeAttName.PAY_RESULT_REASON));
        }
}
    //登出结果通知回调,说明用户已经做了退出账户操作,需要返回登录界面,并重新调用登录
    void NotifyLogout(U3DTypeEvent evt){
}
    //重登录结果通知回调,用户在渠道SDK进行用户切换操作,需要切换到新账号界面。
    void NotifyRelogin(U3DTypeEvent evt){
}
    //取消退出游戏通知回调,把退出游戏逻辑说明一下。
    void NotifyCancelExit(U3DTypeEvent evt){
}

  

大会介绍

叁 、SDK传递的中坚数据类型

sdk用到的数据类型 都继承于U3DTypeBaseData,相关应用示例如下:

3.1创建U3DTypeBaseData对象

U3DTypeBaseData baseData = new U3DTypeBaseData();

3.2设置一条属性

函数名

public void SetData(string attName,string attValue)

参数列表

string attName,

U3DTypeAttName中定义的字段

 

string attValue

当下支撑int,string,boolean 三种类型基本数据

返回值

Void

 

 

 

 

示例:

//(键名使用U3DTypeAttName定义的字段)
baseData.SetData(“键名”,”值”);

 

3.3到手1个string类型的质量 attname为标识

函数名

public string GetData(string attName)

参数列表

string attName,

U3DTypeAttName中定义的字段

返回值

String

指定key值的string类型value

 

 

 

3.4赢得2个int类型的性质 attname为标识

函数名

public int GetInt (string attName)

参数列表

string attName,

U3DTypeAttName中定义的字段

返回值

Int

指定key值的int类型value

 

 

3.5取得二个bool类型的性质 attname为标识

函数名

 

函数名

public bool GetBool(string attName)

参数列表

string attName,

U3DTypeAttName中定义的字段

返回值

Bool

指定key值的boolean类型value

 

 

 

行使例子:

//新建一个对象
       U3DTypeBaseData egData = new U3DTypeBaseData ();
//给该对象赋值
egData.SetData (U3DTypeAttName.APP_KEY, "123456789");
//读取一个string类型数据readStr = "123456789
        string readStr = egData.GetData (U3DTypeAttName.APP_KEY);
//读取一个int类型数据readInt
        int readInt = egData.GetInt(U3DTypeAttName.APP_KEY); = 123456789

 

一呼百应音讯传递的音信类型

public class U3DTypeEvent

函数名

public bool GetBool(string attName)

分子变量列表

public TypeEventType evtType

该事件的类别(枚举)

 

public U3DTypeBaseData evtData

该事件所蕴藏的数额(能够经过上述函数获取相关数据)

 

 

 

 

 

 

 

事件目的例子

void LoginResult(U3DTypeEvent evt)
    {
        U3DTypeBaseData data = evt.evtData;
        string userID = data.GetData(U3DTypeAttName.USER_ID);
        string userToken = data.GetData(U3DTypeAttName.USER_TOKEN);
  }

Mobile Testing Summit
China
(中国际结盟通网络测试开发大会)是一个以运动测试开发技术为核心的正业交换大会,首要聚焦于移动网络应用和智能硬件方向的测试开发技术。大会由中国最大的移动测试社区TesterHome主办,
 邀约国内外许多一级的测试专家和行业余大学牛分享他们的红旗工作经历及独到见解,
是国内移动测试技术升高的风向标. 本届会议为首届。

 

 

肆 、接口接入与叙述

议会分享大旨

(1)初始化

函数名

public void InitSDK()

说明

sdk的初始化接口,再调用其他sdk功能前,请务必先执行该接口,所有渠道都要求在应用启动开始就调用此接口。

 

 

 

 

调用例子

U3DTypeSDK.Instance.InitSDK();

人工智能产品的测试探索 

 

孙高飞  第④范式 资深测试开发工程师

(2)登录

函数名

public void Login ()

说明

显示登录界面,若登录成功则会发送TypeEventType.EVENT_LOGIN_SUCCESS消息。请在登录界面自动执行调用,不要出现需要点击按钮才显示的情况。

当用户登录失败时需要,再次调用此接口。

 

 

 

 

 

调用例子

U3DTypeSDK.Instance.Login();

 

 

Google Mobile Testing 

(3)提交用户新闻

函数名

public void UpdatePlayerInfo ()

说明

在有些指定事件,需要设置用户相关信息并且提交。登录完成进入游戏、用户升级、建角。

 

 

 

 

调用例子

U3DTypeSDK.Instance.UpdatePlayerInfo()

 

当用户成功完全登录进入游玩后,须要安装用户相关音讯并且付诸

该函数的持有内容,不能够动用SDK客户端本地缓存的数据,建议从服务端获得

亟待设置的品质如下,当没有该属性时,请传空字符串

 

string ROLE_TYPE = “create_role”;//角色统计信息类型即调用时机,(createRole:创建角色,levelUp:角色升级,enterGame:选定角色进入游戏)(不能为空)
string SAVED_BALANCE = “0”;//当前角色余额(RMB购买的游戏币),默认为0
string USER_NAME = "user_name"; //用户名
string USER_TOKEN = "user_token"; //用户渠道验证用token
string USER_ID = "user_id"; //用户id
string USER_HEAD_ID = "user_head_id"; //用户头像id
string USER_HEAD_URL = "user_head_url"; //用户头像url
string VIP_LEVEL = “vip_level”;//VIP等级,没有传0
string PARTY_NAME = “party_name”;//工会名称,如:天下第一
string ROLE_ID = "role_id"; //角色id
string ROLE_NAME = "role_name"; //角色名字
string ROLE_LEVEL = "role_level"; //角色等级
string ROLE_CREATE_TIME = “role_create_time”;//角色创建时间,一定要服务器时间(单位/秒)
string ROLE_LEVELUP_TIME = “role_levelup_time”;//角色升级时间(单位/秒)
string ZONE_ID = "zone_id"; //所在大区id
string ZONE_NAME= "zone_name"; //所在大区名称
string SEVER_ID = "server_id"; //所在服务器id
string SERVER_NAME = “server_name”;//所在服务器名称
string EXTRA ="extra";

 

参数值

说明

"0"

进入游戏主场景(即正式登录游戏)

"1"

创建新角色

"2"

角色升级

 

 

 

 

 

 

安装方法言传身教:

U3DTypeSDK.Instance.GetUserData().SetData(U3DTypeAttName.USER_ID, "123");
U3DTypeSDK.Instance.GetUserData().SetData(U3DTypeAttName.EXTRA, "1");
U3DTypeSDK.Instance.UpdatePlayerInfo();

潘岩 Google Software Engineer 

 

 

(4)支付

函数名

public string PayItem (U3DTypeBaseData _in_pay);

说明

在获取服务器订单号,并在TypeSDK Server服务器提交订单信息后,调用此接口启动渠道的支付界面,进行支付行为

 

 

 

 

调用例子

U3DTypeSDK.Instance.PayItem (U3DTypeBaseData _in_pay);

 

其中U3DTypeBaseData中

U3DTypeBaseData userData = U3DTypeSDK.Instance.GetUserData();

 

必填参数为:

//用户ID,渠道返回,没有填空
payData.SetData(U3DTypeAttName.USER_ID,userData.GetData(U3DTypeAttName.USER_ID));
//用户token,登录验签完成后由游戏服务端返回,没有填空
payData.SetData(U3DTypeAttName.USER_TOKEN,userData.GetData(U3DTypeAttName.USER_TOKEN));
//商品支付价格(单位:分)
payData.SetData(U3DTypeAttName.REAL_PRICE,”100");
//商品名称
payData.SetData(U3DTypeAttName.ITEM_NAME,"sk bi”);
//商品数量
payData.SetData(U3DTypeAttName.ITEM_COUNT,”1");
//所在服务器id(如果没有填“0”)
payData.SetData(U3DTypeAttName.SERVER_ID,”1”);
//所在服务器名字(如果没有填“server_name”)
payData.SetData(U3DTypeAttName.SERVER_NAME,”安卓一区”);
//所在大区id(如果没有填“0”),注意应用宝要求:账户分区ID_角色ID。每个应用都有一个分区ID为1的默认分区,分区可以在cpay.qq.com/mpay上自助配置。如果应用选择支持角色,则角色ID接在分区ID号后用"_"连接,角色ID需要进行urlencode。payData.SetData(U3DTypeAttName.ZONE_ID,”1”);
//所在大区名字(如果没有填“server_name”)
payData.SetData(U3DTypeAttName.ZONE_NAME,”华北一区”);
//内部订单号(必须填写,并保证多区情况下,订单号唯一)
payData.SetData(U3DTypeAttName.BILL_NUMBER,”NO_123456”);
//商品id(需和TypeSDK Server商品列表保持一致)
payData.SetData(U3DTypeAttName.ITEM_SEVER_ID,”id”);
//传递的额外参数(建议传入需要用来做订单标识的信息)
payData.SetData(U3DTypeAttName.EXTRA,”extra");
//商品描述
payData.SetData(U3DTypeAttName.ITEM_DESC,”desc”);
//玩家在游戏中的角色ID
payData.SetData(U3DTypeAttName.ROLE_ID,”role_1234”);
//玩家在游戏中的角色名字
payData.SetData(U3DTypeAttName.ROLE_NAME,”玩家编号001”);

当支付行为在客户端完结后,会接收回调新闻:EVENT_PAY_RESULT

内部event的利用类似 login

event中data的参数包含以下内容

PAY_RESULT//支付结果(1/0/2)成功/失败(除取消)/支付取消
//说明:客户端收到“失败或支付取消”状态,建议客户端可以使用户直接发起下笔充值。
PAY_RESULT_REASON//支付结果的原因(失败原因)
PAY_RESULT_DATA

运动终端操作系统一测试试系统 

 

邓小飞 工业和新闻化部电子第⑤探究所  副总工程师程师 

(5)登出

函数名

public void Logout ();

说明

调用渠道的登出逻辑,不会有界面显示,但是会把渠道账户注销,需要由cp自行回到登录界面

 

 

 

 

调用例子:

U3DTypeSDK.Instance.Logout()

 

登出成功则会发送
Type伊芙ntType.EVENT_LOGOUT音信,发送的参数U3DTypeBaseData数据

 

(6)退出

函数名

public void ExitGame ();

说明

调用渠道退出应用程序逻辑,执行成功,则会关闭应用

 

 

 

 

U3DTypeSDK.Instance.ExitGame();

总体娱乐的退骑行为 ,建议交给sdk处理,并且添加
退出游为撤废响应事件侦听Type伊芙ntType.EVENT_CANCEL_EXIT_GAME 的函数

当退出成功后 由sdk执行系统的脱离,当退出裁撤后,则会发送
撤除退出事件,接入方需实现相应的逻辑。

ios远程真机调节和测试 

(7)获取当前渠道SDK配置参数

U3DTypeSDK.Instance.GetPlatformData()

席卷以下内容:

CHANNEL_ID//渠道的id(由SDK组定义 和ConfigSever上的channel id统一)
SDK_NAME//渠道标记
CP_ID

以上参数 在CPSeting.txt中填入(接入方无需关怀)

项光特 百度MTC 技术公司带头人

(8)用户中央

来得渠道用户宗旨

U3DTypeSDK.Instance.ShowPersonCenter()

躲藏用户中央

U3DTypeSDK.Instance.HidePersonCenter()

在调用那一个函数从前须求先实施IsHasRequest(U3DTypeAttName.SUPPOLANDT_PERSON_CENTE奇骏)函数
用以判定 是或不是须求支持该函数。

当帮助时 这一个函数才会起效,并且要求在娱乐内,需求有对应的图纸入口,

当不协理时,那3个函数不会一蹴而就,游戏内页不必要相应的图纸入口。

应用示例:

if(IsHasRequest(U3DTypeAttName.SUPPORT_PERSON_CENTER)){
       U3DTypeSDK.Instance.ShowPersonCenter();

U3DTypeSDK.Instance.HidePersonCenter();
pushData.DataToString(_json_data);
U3DSDK.instance.SendMessage(“receive_local_notify”,pushData);
}

 

(9)查询渠道是不是弹出退出框

U3DTypeSDK.Instance.IsHasRequest(“support_exit_window”)

该类型已开源,大家有趣味能够团结商量或选择接入
体系地址:https://code.csdn.net/typesdk\_code
类型地址:https://github.com/typesdk

Android专项漏洞消灭之五杀  

许雷永  360 Android安全工程师 

 

无线一体化只好测试实践

蔡晓昕 携程旅馆高级测试开发经营

 

链家持续交付之路 

陈巧娜 资深测试工程师

 

创设亿级用户的控量公布体系 

张炳伟 移动技术专家 

 

去什么地方云测平台  

杨洪博 | 高级开发经营

 

应用宝专项优化实践 

李金涛  专项测试高工

 

微服务自动化测试平台进行 

张树涛涛  测试架构师 

 

腾讯手游研究开发测试系统 

魏学峰 腾讯互娱质管理事

 

美团点评活动端品质监察和控制方案 

吴凯  美团点评 

 

根据私有云的APP专项集成平台 

卢裕如 平安证券资深Java研究开发工程师 

 

依照DEX插桩的活动应用品质监察和控制 

夏鸣远 

 

去何地UI自动化持续集成连串 

范留杰 去何方资深测试开发工程师

 

即刻定位Android App电量难题 

蒋翠翠 腾讯专项测试工程师

 

自动化接口测试在饿了么的执行之路 

邱化锋 饿了么资深测试工程师 

 

Citrix移动端的国际化自动化测试 

李素婕 ios平台国际化质量管事人 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注