Pyamf在协议测试中我们主要需要用到的类有三类:

  1、amf3协议包体类:

  envelope = pyamf.remoting.Envelope(amfVersion=3)

  产生的envelope对象是之后对你需要传递数据的封装对象。

  2、pyamf amf3协议的转换类:

  message = pyamf.remoting.encode(envelope)

  产生的message 可以利用urllib2.Request进行传递了。

  3、pyamf amf3协议的解码类:

  res = urllib2.urlopen(req);

  content = res.read();

  content = pyamf.remoting.decode(content)

  这里后产生的content是返回amf3整体解析好的数据,可以根据需要将返回值进行解析,返回值可能是list{list{……},”jason”=jason},可以根据需要后做相应的assert。更多pyamf类相关信息,查询这里。

  之前介绍了如何进行webgame自动化测试的 思路及针对flash进行的自动化测试的框架。在对游戏进行自动化测试的时候,总是会思考大部分的致命BUG都来源于随机的操作,那么我们如何进行这些方 面的自动化测试呢。这时FUZZ模糊的思想又体现到我们的面前,我们可以将需要生成的测试用例交给COMPUTER来自动生成,并且自动执行得到相应的报 告,整体FUZZ模糊测试的概念比较清晰了。

  我们主要使用的是模糊测试中的自动协议生成测试并与协议测试相结合进行自动化测试。

  利用pairwise的思想进行模糊测试。

  我们需要考虑的模糊因素有以下几点。

  1、各种类型的对象的模糊参数设计,模糊参数默认值。

  2、组合参数对象的顺序模糊。

  3、非正常类型的参数模糊,针对XSS。

  利用设计的用例组合进行穷举算法生成相应的用例。

  以下以简单的用例做个实例:假设需要参数:”id=12&Goodid=12300&name=jason”。

  针对ID的设计可以为{-65536,-1,0,12,65536},针对Goodid的设计可以为 {-65536,-1,0,12300,65536},针对name的设计可以为{jason,null,None,”",…………},针对参数顺序 {(id,goodid,name),(id,name,goodid)……}

  根据上面的测试用例集合自动产生相应的测试用例,然后进行相应的协议自动化测试。当然这里设计的用例不完善仅供参考思路。

  模糊测试的使用可以借助很多已有的测试用例类,类似之前Jason介绍的sulley一样,它的用例库比较的全,这样测试覆盖率会比较高。