《应用程序性能测试的艺术 第2版》第六章 性能测试与无线客户端 摘录

什么是无线客户端?

无线客户端大体可以分为以下4类:

《应用程序性能测试的艺术 第2版》第六章 性能测试与无线客户端 摘录

无线网站

这种类型的无线客户端是和传统客户端最为接近的一种应用类型。对于应用来说,只是使用了一种不同的浏览器。用来构建这些无线网站的技术会有一些特别(比如HTML5),终端设备上的渲染也会有一些不一样,但是在通信协议上主要还是使用HTTP和HTTPS。因此我们还是可以使用一些录制工具来将浏览过程录制成脚本,无论是功能测试还是性能测试我们都可以这么做。早期的一些无线网站都是通过一些SaaS 服务商来提供的,随着IT无线技术的迅速发展,很多公司自己研发和维护一个无线站点(m.开头的域名),目前的趋势是从无线网站哉向无线应用。

来自百度百科的解释: 无线网站是指通过移动终端(手机、PDA等)访问的互联网网站。无线网站可以实现普通网站的绝大多数功能,但主要针对无线终端用户使用。无线网站使用户无需再依靠网线,随时随地都可以访问,获取信息,提高了用户的工作效率,同时使信息在第一时间发挥最大价值。

无线应用

无线应用在某些方面会更像是一个新物种。首先,它本质上还是一种通过一个或者多个API和外部进行通信的胖客户端。无线应用特别是设备端应用看起来和传统的应用设计非常相似。无线应用相比无线网站不存在浏览器的兼容性问题,但是它们还是存在设备和操作系统的兼容性问题。

混合式的无线应用

看起来像无线应用的无线网站

无线测试自动化

用来对无线设备进行自动测试的工具既有本地安装版的软件也有一些是通过SaaS服务提供的。

无线应用设计注意点

无线开发中的集成开发环境:BlackBerry, 基于iOS的苹果设备,Android,Windows Phone设备。

需要特别考虑的点

  • 用电量:需要保证应用不会过多地消耗设备电量。
  • 蜂窝网络和Wi-Fi连接:蜂窝网络和Wi-Fi技术对于设备的通信肯定有一些特殊的影响,但是对于性能测试来说这也仅仅意味着无处不在或长或短的网络延迟,影响连接的可靠性。
  • 异步化设计:在应用中使用异步化处理,将突然断开连接给用户带来的影响降到最低。异步化并不意味着获取更快的响应时间,而是需要将应用设计成为就算设备处于离线状态,用户依然能感知到良好的性能。

无线应用测试注意点:设备的多样性,API测试

无线测试设计

明确性能测试场景中的测试对象是一个无线网站还是一个无线应用或者是两者的结合。同时考虑关心的是设备本身的性能还是仅考虑整个系统中由无线用户带来的一部分负载需求。

不考虑设备性能的场景:

  • 无线网站:性能测试设计中,应该包含真实比例的无线浏览器用户,并且选择那些占比最大的设备和浏览器用户作为代表。可以通过HTTP头信息里面的字段来设置特有的设备和浏览器类型,比如User-Agent;或者一些性能测试工具会自动提供这个功能。可以通性能测试工具模拟任何类型的设备和浏览器。
  • 无线应用: 针对无线应用用户的负载测试只能通过编写相应的设备调用API脚本来完成。

需要考虑设备性能的场景

  • 再次重申,我建议在性能测试过程中包含对设备本身的性能测试,但是基于实现方法的不同这一点有时候很难做到,在性能测试场景中使用几百个真实的物理设备显然不太理实。一种可行的方法是在测试过程中组合少量的物理设备,通过API层或者协议层(HTTP)的自动化脚本来实现一定的负载。步骤如下:
  1. 确定用例以及测试数据需求
  2. 创建API层和设备层脚本。
  3. 在没有负载的情况下,对设备脚本使用一个虚拟用户来建立响应时间的性能基线。(仅设备时间,需要对外部API进行适当的隔断模拟;设备同时包含API时间)
  4. 创建一个包含设备自动化和API层脚本的性能测试场景。
  5. 仅执行设备脚本。
  6. 同时执行API层脚本和设备脚本。