精华内容
下载资源
问答
  • 兼容性测试验证软件与其所在的环境的依赖程度,包括对硬件的依赖程度,对平台的依赖程度、其他软件的依赖程度等。 2.案例 3.兼容性测试的前提 标准和规范是软件兼容性的保证 √     高级...

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!

    一、兼容性测试

    1.兼容性测试的含义

    兼容性测试验证软件与其所在的环境的依赖程度,包括对硬件的依赖程度,对平台的依赖程度、其他软件的依赖程度等。

    2.案例

    在这里插入图片描述

    3.兼容性测试的前提

    • 标准和规范是软件兼容性的保证
      √     高级标准
             ✰     产品遵守的规则
      √     低级标准
             ✰     文件格式和网络通信协议
      在这里插入图片描述

    4.兼容性测试的测试点

    • 硬件兼容
      √     包括主板、处理器、内存、显卡、显示器、打印机等。
             ✰     如不同品牌和架构的计算机、不同频率或不同位数的 CPU、不同大小的内存、硬盘、不同带宽的网络等。

    • 操作系统兼容
      √     包括操作系统类型、位数、补丁版本等。选择测试平台要考虑操作系统的流行程度、年份、类型、生产厂商等方面。
      √     不同操作系统如 Windows、Mac、 Solaris、Linux 等;手机平台如 Android、IOS、 Windows Phone。

    • 软件并发兼容
      √     浏览器兼容
             ✰     不同浏览器如 IE、FireFox、Chrome 和 Safari 等。
      √     与其他软件兼容

    • 分辨率兼容
      √     测试不同分辨率下软件都能正常使用。

    • 向前、向后兼容
      √     向后兼容或向下兼容
             ✰     指较高版本的程序能顺利处理较低版本程序的数据或者在较老系统中使用;
                     ▲     新版本软件能够兼容以前各种版本产生的历史数据,确保数据向后兼容,如 Word2013 能够正常打开之前多个 Word 版本(如 Word 2003、Word 2007等)产生的用户.doc 文件。
      √     向前兼容或向上兼容
             ✰     指以前的版本支持现在版本生成的数据,现在的版本支持以后的版本数据或者在更高版本的系统中使用。

    • 不同客户端软件版本和服务器系统的兼容
      √     服务器上一般部署的都是最新版本,但客户端就不一定。

    • 数据共享兼容
      √     测试文档的保存和读取数据格式兼容
      √     剪贴板(考虑格式兼容)

    二、文档测试

    1.哪些文档需要测试

    • 用户手册
    • 联机帮助
    • Readme 文件(自述文件)
    • 授权/注册登记表/用户许可协议
    • 指南及向导
    • 包装文字和图形
    • 市场宣传材料
    • 标签

    2.文档测试检查单

    在这里插入图片描述

    3.文档测试的测试点

    3.1 Readme 文档

    在这里插入图片描述

    3.2 联机帮助

    在这里插入图片描述
    在这里插入图片描述

    3.3 及时/即时联机帮助

    在这里插入图片描述

    3.4 用户手册

    在这里插入图片描述

    4.文档测试需要注意的问题

    • 对于软件用户来说,程序之外的内容也是软件的一部分;

    • 文档常常得不到足够的重视,缺乏资金和技术支持以及测试;

    • 编写文档的人可能并不是软件特性方面的专家,对软件不了解;

    • 由于文档的印刷需要花费时间,所以之间产生的问题得不到修复;

    • 文档测试不仅仅是文字校对,还涉及程序本身的错误。

    三、安装测试

    1.安装测试的分类

    • 安装测试

    • 运行测试

    • 卸载测试

    • 加密测试

    2.安装测试注意事项

    • 安装手册评估

    • 安装的自动化程度测试

    • 安装选项和设置的测试

    • 安装过程的中断测试

    • 安装顺序测试

    • 多环境安装测试

    • 安装的正确性测试

    • 修复安装测试

    • 卸载测试

    3.安装测试的测试用例

    在这里插入图片描述

    4.运行测试的测试用例

    在这里插入图片描述

    5.卸载测试的测试用例

    在这里插入图片描述

    6.加密测试

    6.1 加密测试的内容

    • 软件加密
      √     序列号的测试
      √     解密程序的测试

    • 硬件加密
      √     加密狗的测试

    6.2 加密测试的测试用例

    在这里插入图片描述

    展开全文
  • Google Play会过滤出那些对用户可见的应用程序,因此用户只能看到和下载那些跟...1. 应用程序需要的功能---应用程序在它自己的清单的元素中声明的功能; 2. 在设备上有效的硬/软件功能---值设备用只读的系统属性所
    Google Play会过滤出那些对用户可见的应用程序,因此用户只能看到和下载那些跟他们的设备兼容的应用程序。通过功能的兼容性是过滤应用程序的方法之一。
    

    Google Play通过把以下两项内容进行比较,来判断应用程序跟给定用户设备是否兼容:

    1. 应用程序需要的功能---指应用程序在它自己的清单的<uses-feature>元素中声明的功能;

    2. 在设备上有效的硬/软件功能---值设备用只读的系统属性所报告的它所支持的功能。

    为了确保功能的准确比较,Android包管理器提供了一个共享的功能常量集合,应用程序和设备都使用这些常量来声明各自所需要和支持的功能。可用的功能常量在本文下面的功能参考表中被列出。

    当用户启动Google Play时,应用程序通过调用getSystemAvailableFeatures()方法,来查询包管理器中所列出的设备上可用的功能列表。然后在建立用户会话的时候,软件商店(The Store)应用程序会把这个功能列表上传给Google Play。

    每次把应用程序上传给Google Play的发布网站时,Google Play都会扫描应用程序的清单文件。它会查找清单中的<uses-feature>元素,并且在某些情况下,会把它们跟其他元素组合在一起来评估,如<uses-sdk>和<uses-permission>元素。在建立了应用程序所需的功能集合之后,Google Play会把这个功能列表做为跟应用程序的.apk和版本相关联的内部元数据来保存。

    当用户使用Google Play应用程序查询或浏览应用程序时,服务就会把每个应用程序所需的功能跟用户设备上可用的功能进行比较。如果应用程序所需要的功能在设备上都存在,那么Google Play就允许用户看到该应用程序,并程序潜在的可下载应用程序。如果应用所需的任何一个功能不被设备所支持,Google Play就过滤掉该应用程序,这样用户就看不到并且也不能够下载。

    因为在<uses-feature>元素中声明的功能直接影响到Google Play如何过滤应用程序,因此理解Google Play是如何评估应用程序的清单和建立需求功能的集合是至关重要的,以下章节会详细说明。

    基于明确声明功能的过滤

    一个明确声明的功能就是应用程序在其清单中声明的一个<uses-feature>元素。功能声明能够包含一个android:required=[“true”|”false”]属性(如果在API Leve 5以上的版本上编译),这个属性指定了应用程序是否绝对的需要该功能,并且目标设备上不存在该功能时,该应用程序就不能正常的运行(true的场合),或指定应用程序在功能有效的时候就使用该功能,而在该功能无效的时候,应用程序也被设计成可以运行(false的场合)。

    Google Play用以下方法来处理明确声明的功能:

    1. 如果一个功能被明确声明为时必须的,则Google Play就会把应用程序需要的功能列表添加到一个列表中。然后把列表中的功能需求与用户设备提供的功能进行比较,从而把应用程序从没有提供该应用所需功能的设备中过滤掉。例如:

    <uses-featureandroid:name="android.hardware.camera"android:required="true"/>

    2. 如果一个功能被设计成非必须的功能,Google Play就不会把这样的功能添加到功能需求列表中。由于这个原因,明确声明的非必须功能,在Google Play过滤应用程序时就不会被考虑。即使设备不提供该声明的功能,Google Play依然会认为该应用程序与设备是兼容的,并允许显示给用户,除非使用了其他过滤规则。例如:

    <uses-featureandroid:name="android.hardware.camera"android:required="false"/>

    3. 如果一个功能被明确声明,但没有设置android:required属性,那么Google Play就会假定该功能是必须的,并且要针对该功能进行过滤。

    通常,如果应用程序被设计成要运行在Android1.6或更早的版本上,那么在API中android:required属性是无效的,并且Google Play会假定应用程序所声明的所有的功能<uses-feature>都是必须的。

    注意:通过声明一个包含android:required=”false”属性的功能,能够禁止Google Play针对该功能的所有过滤。

    基于暗示功能的过滤

    一个暗示的功能是为了让应用程序正确运行所需的功能,但是,这个功能不在清单的<uses-feature>元素中声明。严格的说,应用程序应用始终声明它所使用和需要的所有功能,因此对于应用程序使用的,但却没有声明的功能,应该被认为是一个错误。但是,出于对用户和开发者的保护,Google Play会查看每个应用程序的暗示功能,并基于这些功能来过滤应用程序,就像是明确声明的功能所做的处理一样。

    应用程序可能需要一个功能,但却不声明,这是因为:

    1. 应用程序是针对较旧的Android类库版本(Android1.5或更早)来编译的,并且<uses-feature>元素是无效的;

    2. 开发者错误的假设所需要的功能在所有的设备上都存在,而没有必要声明;

    3. 开发者不小心忽略的该功能的声明;

    4. 开发者明确的声明了该功能,但该声明是无效的。例如:<uses-feature>元素名的一个拼写错误或给android:name属性设定一个无法识别的字符串,这些都会导致功能声明无效。

    基于以上原因的考虑,Google Play会尝试通过检查清单文件中其他元素的声明(特别是<uses-permission>元素)来发现被应用暗示的功能需求。

    如果一个应用程序申请了硬件相关的权限,那么Google Play就会假定应用程序要使用底层的硬件功能,并因此而需要那些功能,即使可能没有响应的<uses-feature>声明。针对这样的权限申请,Google Play也会把底层的硬件功能添加到它所保持的对应的应用程序的元数据中,并基于这些信息来过滤要显示给用户应用程序。

    例如,如果应用程序申请了CAMERA权限,但却没有声明一个对应android.hardware.camera功能的<uses-feature>元素,那么Google Play就会认为应用程序需要照相机功能,并且该应用程序不应该显示给没有提供照相机功能的那些用户设备。

    如果不想要Google Play基于某个特殊的暗示功能来过滤应用程序,就要禁止这种行为。通过在其清单文件中明确的声明<uses-feature>元素,并包含一个android:required=”false”属性,可以达到禁止Google Play过滤应用程序的目的。例如:要禁止由CAMERA权限所派生出来的过滤,就要向下面这样在应用的清单中声明一个<uses-feature>元素:

    <uses-featureandroid:name="android.hardware.camera"android:required="false"/>

    理解用<uses-permision>元素声明的权限能够直接影响Google Play对应用程序的过滤是至关重要的。在下面的“暗示功能需求的权限”章节中,列出了所有的暗示功能需求的权限集,并因此而引发的过滤处理。

    对于蓝牙功能的特殊处理

    当Google Play针对蓝牙功能来判断过滤时,它会使用比以上描述稍微不同的规则。

    如果应用程序在其清单的一个<uses-permission>元素中声明了一个蓝牙权限,但没有明确的在<uses-feature>元素中声明蓝牙功能,那么Google Play会检查应用程序被设计成要运行在哪个Android平台的版本上,这个版本在<uses-sdk>元素中被指定。

    如下表所示,Google Play只会在应用程序把Android2.0(API Leve 5)或更高的版本作为最低版本或目标平台时,才会启用针对蓝牙功能的过滤。但是,要注意的是,当应用程序在<uses-feature>元素中明确声明了蓝牙功能时,Google Play会使用普通的规则来进行过滤处理。

    以下的例子,基于Google Play处理蓝牙功能的方式,演示了不同的过滤效果。

    第一个例子,声明了蓝牙权限的应用程序被设计成要运行在比较旧的API Level上,但是它没有在其<uses-feature>元素中声明蓝牙功能。

    结果:Google Play不会把应用程序从任何设备上过滤掉。

    <manifest ...>
        <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN"/>
        <uses-sdkandroid:minSdkVersion="3"/>
        ...

    </manifest>

    第二个例子,相同的应用程序,还声明了一个目标API Level是5的属性。

    结果:Google Play会假设应用程序需要蓝牙功能,并把应用程序从那些没有报告支持蓝牙功能的设备上过滤掉,包括那些运行较旧平台版本的的设备。

    <manifest ...>
        <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN"/>
        <uses-sdkandroid:minSdkVersion="3"android:targetSdkVersion="5"/>
        ...
    </manifest>

    第三个例子,相同的应用程序,但声明的蓝牙功能需求。

    结果:与第二个例子相同。

    <manifest ...>
        <uses-featureandroid:name="android.hardware.bluetooth"/>
        <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN"/>
        <uses-sdkandroid:minSdkVersion="3"android:targetSdkVersion="5"/>
        ...
    </manifest>

    最后一个例子。相同的应用程序,但<use-feature>元素中添加了android:required=”false”属性。

    结果:Google Play会针对所有设备禁止使用基于蓝牙功能支持的过滤。

    <manifest ...>
        <uses-featureandroid:name="android.hardware.bluetooth"android:required="false"/>
        <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN"/>
        <uses-sdkandroid:minSdkVersion="3"android:targetSdkVersion="5"/>
        ...
    </manifest>

    测试应用程序所需要的功能

    可以使用包含在Android SDK中的aapt工具,来判断Google Play会怎样过滤自己的应用程序(基于应用声明的功能和权限)。用dump badging命令来运行aapt工具,执行该项测试工作。aapt工具会解析应用程序的清单文件,并且使用与Googl Play相同的规则,来判断应用程序所申请的功能。

    以下是使用这个工具的步骤:

    1. 首先,把应用程序作为一个未签名的.apk来编译并导出。如果使用带有ADT的Eclipse来开发应用程序,那么右击功能名,并选择Android Toos->Export Unsigned Application Package。选择目标文件名和路径,点击OK按钮。

    2. 接下来,定位aapt工具,如果在环境变量PATH中没有设置它的路径,而且使用的是SDK Tools r8或更高的版本,那么可以在<SDK>/platform-tools/目录中找到该工具。

    注意:所使用的aapt工具版本必须是提供给最新的可用的平台工具组件。如果没有,可以使用Android SDK Manager来下载。

    3. 使用以下语法来运行aapt:

    $ aapt dump badging <path_to_exported_.apk>

    以下是该命令的针对上面第二个例子的输出结果:

    $ ./aapt dump badging BTExample.apk
    package: name='com.example.android.btexample' versionCode='' versionName=''
    uses-permission:'android.permission.BLUETOOTH_ADMIN'
    uses-feature:'android.hardware.bluetooth'
    sdkVersion:'3'
    targetSdkVersion:'5'
    application: label='BT Example' icon='res/drawable/app_bt_ex.png'
    launchable activity name='com.example.android.btexample.MyActivity'label='' icon=''
    uses-feature:'android.hardware.touchscreen'
    main
    supports-screens:'small''normal''large'
    locales:'--_--'

    densities:'160'


    转载自:google play商店应用过滤机制,设备应用不兼容的说明及解决办法

    展开全文
  • 电磁兼容

    2011-11-18 22:40:28
    电磁兼容(EMC,ElectroMagnetic Compatibility)一般电气及电子设备在共同的电磁环境中能执行各自功能的共存状态,即要求在同一电磁环境中的上述各种设备都能正常工作又互相干扰,达到“兼容”状态。...
  • 电磁兼容性(EMC)是设备或系统在其电磁环境中符合要求运行并对其环境中的任何设备产生无法忍受的电磁干扰的能力。因此,EMC包括两个方面的要求:一方面是设备在正常运行过程中对所在环境产生的电磁干扰能...
  • 移动兼容测试

    千次阅读 2017-07-23 12:21:55
    兼容测试(Compatibility Test Suite ),简称CTS,业界的定义是:测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络环境中是否能正常的运行和信息共享的测试。 拿我们最常见的笔...

    这篇文章从5W1H 的角度来讲讲移动兼容测试。

    WHAT 什么是兼容测试

    兼容测试(Compatibility Test Suite ),简称CTS,业界的定义是指:测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络环境中是否能正常的运行和信息共享的测试。

    拿我们最常见的笔来举例。

    • 一支笔,能够在白纸上、黑板上的等不同的位置写字,就是兼容。
    • 不同的笔芯,在一定的长度和宽度范围内,都可以安装上使用,这也是兼容。

     

    WHY  为什么要做兼容测试

    兼容测试是衡量质量的重要依据,同时也使产品的市场更广阔。

    兼容测试本质上属于功能测试,只不过对于软件来说,侧重在不同的软硬件和使用环境。

     

    WHEN 何时做兼容测试

    情况下,当一般软件开发完成,需求都已实现,功能可以在某个系统或环境下正常使用时,即可开展兼容测试了。

    因为当功能未开发完成,或基本功能都不能正常使用时,兼容测试的过程容易收到阻塞,甚至可能需要完全颠覆了重做。

     

    HOW 如何做兼容测试

    兼容测试分为硬件兼容、软件兼容和数据兼容。

    1 硬件兼容

    1.1 操作系统

    腾讯2016 移动应用质量大数据报告发现,移动设备总数达10.7亿。2016年移动设备总数持续攀升, Android 设备总数从2015年的6.6亿提升至7.3亿, iOS设备总数从2015年的3.0亿提升至3.4亿。

    全球及中国主流的操作系统主要是Android(安卓)、iOS(苹果)。这两个系统是兼容测试的重点。

    事实上,移动设备的主流系统还有 Windows Phone 和 Symbian,但是根据2016和2017年这两者的用户群体过少,不必要作为兼容测试的标准。

    报告同样发现,Android系统上应用闪退现象更加严重。

    根据数据分析,造成闪退最常见的几种异常原因:

    • 空指针异常
    • 找不到类和方法
    • 权限问题
    • so加载异常
    • 状态异常等

    71%的闪退是由这5种问题引起,机型适配测试可以有效降低因权限问题、API问题、SO加载等闪退问题的发生。

     

    1.2 系统的版本

    这是两个典型的bug案例:

    a)ios 7.0系统上,装某个直销银行 APP,启动出现闪退。

    原因在于不支持8.0以下的系统,但开发并未将APP支持安装的最低系统设定为8.0,导致7.0系统上可装却不可用。系统不满足app运行所要求的系统标准。

    b)4.x的系统上启动APP换头像时一点击拍照或者相册,就立即闪退。因为调用了高级系统5.x才有的API。

    那么到底有哪些系统版本呢?

     

    Android:手机最早是V1.5,平板最早是V3.0,而目前Google最新发布的系统已经是V8.0了。

    下表是自android 4.0之后的系统版本及发布日期。

    iOS:目前市面上是V7.0至V10.3.3之间的系统。下表是自ios 7.0之后的系统版本及发布日期。

    大部分使用苹果的用户都会第一时间将iOS升级为最新版本,但是因为Android过于碎片化以及各大厂商自家ROM更新速度不一,导致新版本往往不能在第一时间获得更新,只有等待厂商及时更新后才能使用新系统。

    谷歌官方8月份的安卓市场份额报告显示,目前市面上大部分的安卓手机,仍然搭载Android 6.0系统(棉花糖), Android 7.0以后的版本(牛轧糖)的市场占有率有所增加,达到13.5%。另外还有不到10%的安卓用户在使用Android 4.4之前的系统。

    而ios的数据就很明显体现出来,60%以上的用户已经升级到10.0以上的系统。

    1.3 ROM

    市面上常见的ROM有小米家的MIUI,魅族家的Flyme,还有华为EMUI和vivo等等,基本上各家厂商都有根据安卓系统的原生代码进行更改定制,只有谷歌Nexus和Pixel系列才是原生系统。

    1.4 屏幕分辨率

    目前市面上主流的分辨率为:1280x720、2560*1440、1920x1080等等。

    比如,在不同分辨率的设备上,一行内能显示的字符是不一样的,可能需要进行换行或者省略处理。

    1.5 网络

    2G\3G\4G以及WIFI等,页面的加载和展示,不同运营商的网络协议是不同的。还有没有网络的情况,页面是否有友好的提示等等。

    比如在APP 跳转到一个页面时,内容毫无任何内容,显示一片空白。可能是网络不联通,则需要给用户一个友好的提示。

    由于移动设备有着明显的特点。

    • Android设备:厂商多、机型多、系统版本多、定制化ROM多。
    • iOS设备:机型少、系统版本少、低版本用户少、无定制化。

    如果是所有的Android机型都覆盖,那么对于用户量不大的系统或机型,开发维护支持和BUG的修复可能都收不回成本。

    所以在硬件机型的选择上,应该是主流厂商和机型为主,其他厂商机型为辅。如果只有有限的资金购买兼容测试的设备,那么首先应该要购买的是主流厂商和机型。同个厂商系列的机型选其一即可,比如 nexus 系列、samsung 的 Galaxy 系列

    我们可以做一个这样的表,更直观

    • 某个环境下程序启动、页面切换的时间特别长,操作起来经常出现卡顿。
    • 一般会和硬件环境设备的配置、APP包的大小、APP使用时所占的内存有关。

    2 软件兼容

    测试APP跟系统应用、其他软件之间的冲突

    • 手机中查看网页,没有自适应屏幕尺寸大小,图片显示模糊,文字显示不全截断等。
    • 原因可能是图片分辨率过低等等,还可能是没有做移动设备适配、分辨率适配、横竖屏适配等等。

    3 数据兼容

    指APP自身低版本升级到高版本之后的表现。比如用户的账户信息、个人设置、历史记录,是否还在。

    4 兼容测试的范围

    项目测试过程中,大大小小的改动不计其数,如果每个版本,每次改动都要从界面ui、详细功能逻辑等进行全覆盖兼容测试,那么所需要的工作量和人力损耗是非常大的,所以给新人对兼容覆盖的力度和深度,进行了场景划分。

    不一定适用于其他项目,但是可以参考,当然更专业的应该是根据代码改动的影响进行评估兼容测试的范围~

    编号场景示例厂商机型ROM系统版本(API)屏幕分辨率网络浏览器测试内容备注
    1UI一级页面配色展示布局等     UI适配测试如果界面使用的控件和系统版本API、Rom有关,那就也需要增加这一部分的兼容测试
    2交互页面跳转、层级关系等   基本功能测试这时重点关注点应该是交互流程、各个页面的进入和返回
    3功能功能及业务逻辑等 基本功能测试 
    4集成模块代码不变更,只是集成的模块版本有差别     基本功能测试基于各模块已稳定的情况下,集成后对应操作系统的兼容,一般我们只覆盖最低、最高和中间的系统版本
    5前端重构功能需求不变,但代码重写  基本功能测试这里只是参考,实际还是要根据重构的定义和影响范围来评估测试范围
    6后端重构功能需求不变,但代码重写      基本功能测试针对后端代码变动的部分进行接口和影响到的功能测试即可
    7系统版本支持的最低系统变更     安装卸载启动测试对于Android系统来讲,支持的最低系统变更只是对应manifest文件中的一个值而已,所以其他都不会影响,只需要进行代码检查和安装卸载的覆盖测试即可
    8系统控件调用调用系统的键盘、相机、拨打电话等    基本功能测试 

    5 兼容测试的工具

    如果按照常规的对兼容测试的理解,把兼容测试做的很全面,就需要覆盖多个设备,每个功能点进行反复的测试,这样一来测试人员一方面容易产生疲劳测试,另一方面时间人力损耗非常严重。云测平台在这种场景下就顺时而生。

    云测平台是什么?

    云测试(Cloud Testing),是基于云计算的一种新型测试方案。提供App真机自动化云测试服务平台,基于云端部署超过3000部主流智能移动设备,可实现自定义终端进行批量自动化兼容适配测试以及功能、性能、稳定性测试。

    开发者或者测试工程师所要做的就是:只需要把应用包上传上去,选择相应的执行兼容测试的设备,云测试平台在一定时间内自动完成兼容性测试,并且输出测试报告(包含失败的设备、原因还有错误日志)。

    但是云测试也有局限性,不能完全替代人工测试,并且都是收费服务,且价格不便宜。加之由于并不能时时的进行远程控制,所以问题定位复现以及调试回归时,偏麻烦。所以通常云测试的结果会作为参考,但并适合完全代替手工测试。

     

    下面是常用的云测平台工具:

    Testin:www.testin.com

    • 我从事移动互联网测试一来最早接触到的云测平台。
    • 支持安卓与IOS。提供兼容性测试、功能测试、性能测试等,收费。

    百度MTC:mtc.baidu.com

    • 百度开放平台旗下的移动云测试平台。提供的测试服务种类有兼容性测试、性能测试、功能测试等等,
    • 为收费的(好像用户第一次注册过之后有免费的测试机会)

    腾讯优测:utest.qq.com

    • 腾讯旗下的云测试平台。收费。

    阿里MQC:mqc.aliyun.com

    • 阿里巴巴旗下的移动测试平台。支持安卓和IOS系统。
    • 提供兼容性测试、功能测试、性能测试、稳定性测试等,收费。
    展开全文
  • 评论区大家提出了很多留存的问题,比如说兼容IE11,能下载txt和video文件等问题。txt和video的下载问题我还没有证实。不过这些意见都十分可贵。 另外还有人给出了一系列的解决方案,比如利用jszip实现文件批量...

    2018年10月26日更新

    评论区大家提出了很多留存的问题,比如说不能兼容IE11,不能下载txt和video文件等问题。txt和video的下载问题我还没有证实。不过这些意见都十分可贵。

    另外还有人给出了一系列的解决方案,比如利用jszip实现文件批量打包下载;使用fileSaver.js + Blob的方式进行文件下载等。虽然我还没来得及去一一验证,但是很感谢大家给出的宝贵方案,也为浏览到本篇文章的读者们提供了一条解决问题的思路。

    虽然让人难以置信,但是我刚才试了一下,直接对location赋值的方式进行文件下载,实验结果竟然相当好,不但在IE11中能够正常下载,在Safari中也可以正常下载。

    具体实现方式如下:

    window.location.href = yourFilePath
    复制代码

    这里的yourFilePath是调用后台文件下载的接口地址。后台在接口中返回文件流供前端下载。

    其实我在下面所说的downLoadTemplateURL也是指的后台文件下载的接口地址。一开始表述的不太清晰,可能会造成一部分读者的误解,在此特地声明一下。


    之前处理文件下载功能一直使用的是window.open(URL)的方式。这样当然也是可以实现文件下载功能的,而且使用起来还很方便。

    但是有一次测试发现这个方法在Safari浏览器中并不能正常下载,于是我又开始寻找兼容性更好的下载功能实现方案。今天给大家推荐的是一个我目前一直在使用,而且到目前为止还没有发现兼容性问题的一个解决方案。当然,如果大家在使用过程中发现此方案存在什么bug,也欢迎在评论区进行发言,发现问题,解决问题,才能促使大家共同成长。

    其实html中的<a>标签不光有导航链接的作用,同时还能实现文件下载功能。具体用法如下:

    <a id="downLoadExcel" :href="downLoadTemplateURL" :download="filename"></a>
    复制代码

    <a>标签中添加download属性即可实现点击下载功能。这里最好在前端指定下载的文件名,因为有时候通过后台提供文件名会产生乱码,而由前端指定文件名则完全没有这方面的顾虑。

    downLoadTemplateURLfilename都是通过动态赋值的,这样,无论是在开发环境还是生产环境,代码都可以复用,不需要进行修改。

    具体实现代码如下:

    downLoadExcelTemplate() {
        const vm = this
        vm.downLoadTemplateURL = vm.apiHost + "downloadYourFileURL"
        vm.filename = "myTest.pdf"
        setTimeout( () => {
          document.querySelector("#downLoadExcel").click()
        },500)
      },
    复制代码

    我这里采用的是点击自定义按钮,在自定义按钮的点击事件中主动触发 <a> 标签的点击事件的方法。这样可以在触发下载文件功能前进行额外操作。

    至于对click进行延迟触发——也就是使用setTimeout()方法,是为了在修改下载路径和文件名后给浏览器预留足够的时间将变量值渲染到<a>标签中。否则在触发click事件时,对应值还没有成功渲染,会导致无法成功下载。

    经过测试这个方法是完全能够满足绝大部门需求的,如果你还有什么其他方案,欢迎分享出来,大家一起学习,共同进步。

    结束语

    如果你喜欢本篇文章欢迎点赞、关注。你的支持是我继续分享的最大动力。

    展开全文
  • P 新特性 Android P 在Google IO2018正式发版,全新的手势操作选项。底部虚拟键将由小白点和一颗返回键取代... 通知栏功能增强 多摄像头支持和摄像头更新 HDR VP9 视频、HEIF 图像压缩和 Media API 详...
  • 文章目录系统测试概述功能测试性能测试负载测试压力测试性能测试、压力测试、负载测试的关系兼容性测试安全测试健壮性测试配置测试可用性测试文档测试 系统测试概述 系统测试的定义 将已经集成好的软件系统,作为...
  • 移动端兼容性测试

    万次阅读 2018-09-30 10:55:33
    兼容性测试是测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够很友好的运行的测试。–【百度百科】 为什么要做兼容性测试 目前碎片化十分严重,尤其是安卓...
  • 一、功能测试 1、链接测试  (1)、测试所有链接是否按指示的那样确实链接到了该链接的页面;  (2)、测试所链接的页面是否存在;  (3)、保证Web应用系统上没有孤立的页面(所谓孤立页面是没有链接指向...
  • 人们在研发新产品时,往往急于实现产品的功能,于是沿用低频、低速时的经验,满足于利用软件将单片机、芯片和元器件连接起来,就希望实现产品功能、效能和性能,结果事与愿违,不仅只是在低水平徘徊,而且延误了宝贵....
  • 类型兼容规则是在需要基类对象的任何地方...类型兼容规则中所的替代包括以下情况: 子类对象可以当作父类对象使用 子类对象可以直接赋值给父类对象 子类对象可以直接初始化父类对象 父类指针可以直接指向子类对
  • EMC包括两个方面的要求:一方面是设备在正常运行过程中对所在环境产生的电磁骚扰能超过一定的限值;另一方面是设备对所在环境中存在的电磁骚扰具有一定程度的抗扰度,即电磁敏感性。以下解答电磁兼容设计中遇到...
  • 赋值兼容规则

    千次阅读 2017-02-03 11:08:06
    赋值兼容规则是在需要基类对象的任何地方都可以使用公有派生类的对象来替代。...赋值兼容规则中所的替代包括以下的情况:  ·派生类的对象可以赋值给基类对象。 ·派生类的对象可以初始化基类的引用。 ·
  • 电磁兼容性(EMC)是设备或系统在其电磁环境中符合要求运行并对其环境中的任何设备产生无法忍受的电磁干扰的能力。因此,EMC包括两个方面的要求:一方面是设备在正常运行过程中对所在环境产生的电磁干扰能...
  • 类型兼容性原则

    千次阅读 2020-02-27 16:13:34
    类型兼容规则是在需要基类对象的任何...类型兼容规则中所的替代包括以下情况: 子类对象可以当作父类对象使用 子类对象可以直接赋值给父类对象 子类对象可以直接初始化父类对象 父类指针可以直接指向子类对...
  • EMC (电磁兼容性)

    千次阅读 2018-02-14 10:05:04
    因此,EMC包括两个方面的要求:一方面是设备在正常运行过程中对所在环境产生的电磁干扰能超过一定的限值;另一方面是器具对所在环境中存在的电磁干扰具有一定程度的抗扰度,即电磁敏感性。 定义: 电磁...
  • 向前兼容与向后兼容

    千次阅读 2012-01-18 11:02:27
    [总结]向前兼容: 老版本必须能理解/处理新版本的部分数据.  向后兼容: 新版本处理老版本的数据. ...向下兼容(downward compatibility),又称向后兼容(backward compatibility)、向后兼容,在计算机中
  •  电磁兼容性 按照GJB 72A-2002《电磁干扰和电磁兼容性术语》的定义,电磁兼容性(Electro Magnetic CompaTIbility,EMC)是“设备、分系统、系统在共同的电磁环境中能一起执行各自功能的共存状态。包括以下两个...
  • 测试技术-兼容性测试

    千次阅读 2019-09-24 14:38:07
    兼容性测试将验证软件与其所依赖的环境的依赖程度,包括对硬件的依赖程度,对平台软件、其他软件的依赖程度等。 2 兼容性测试环境的准备 测试中的硬件环境进行测试所必需的服务器、客户端、网络连接设备,以及...
  •  EMC是电子设备在共同的电磁环境中,能一起执行各自功能的共存状态,即该设备不会由于受到处于同一电磁环境中的其他设备的电磁发射导致或遭受允许的降级,也不会使同一电磁环境中其他设备因受其电磁发射而导致...
  • 关于浏览器兼容性的问题

    千次阅读 2014-02-17 10:32:10
     所谓的浏览器兼容性问题,是因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果统一的情况。在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 201,453
精华内容 80,581
关键字:

包含不兼容的功能指的什么