`
文章列表

H5前端性能测试

      一般说到性能测试,我们首先想到的是接口(服务端压测),但是如果服务端接口性能ok,但是当你的页面在浏览器/app native运行时,性能仍然不太理想。这时候就需要对前端进行性能测试。由于H5可跨平台,开发成本低,可随时上线,且试错成本低,可轻量的触达用户提供便捷的服务等优点,越来越受到追捧。但它也有缺点那就是无法将数据存储在本地,性能相对较差(例如3D效果,频繁的输入输出等等)所以做H5性能测试尤为重要。若H5是嵌入在navtive App中,则需要先在移动设备端进行专项测试(内存占用测试、弱网测试、流量测试、CPU测试、电量测试、帧率测试等)若发现CPU测试和帧率测试等等不达 ...
  随着无线App使用越来越广泛,无论走在哪都基本上能看到大家人手一部手机,低着头在玩App。增长较为明显的主要集中在创业型公司,同时H5在移动端由于其相对较低的开发成本以及强大的跨平台运行能力,较低的发布成本,使得越来越多的信息型产品开始选择轻量级的H5页面进行快速迭代,同时借用微信等平台快速触达用户。早期App红利时期已过,使后面用户数量增加变的困难,应用市场推广App成本越来越高。对于前期还未融资的创业型公司,在产品布局时我们如何选择变的非常重要。Web app、Native app和H5该如何选择?      H5相对Native App的优势:   H5可跨平台使用,开发 ...
1、接口测试概念      接口测试:测试系统间接口的一种测试,测试的对象主要是接口,主要是测试外部系统与所测系统之间以及内部系统之间的交互点   2、接口测试方法     a、可以通过写脚本代码进行测试     b、可以通过UI界面进行测试   3、接口测试范围      接口范围包括:           一、被测项目中同层之间的接口(如DAO层、Service层),一个接口调用了其他的接口           二、外部系统与系统之间的交互点(如一个App调用了第三方支付宝的API)           三、各个子系统之间的交互点(如App客户端调用了服务端的Http ...
1、Maven本身并不是一个单元测试框架,它只是构建,执行到特定生命周期阶段的时候,通过插件maven-surefire-plugin(测试运行器Test Runner)来执行JUnit/TestNG的测试用例。且这个插件能兼容JUnit3,JUnit4,TestNG。   2、当pom.xml文件里的<build>没有配置maven-surefire-plugin插件,当运行mvn test命令以编译并执行你项目下的测试类(即src/test/java目录下的java文件)时,会按maven-surefire-plugin插件的默认配置来执行的。所谓的默认配置是指以下几类: ...
   1、GPU概念           GPU(Graphic Process Unit):图形处理器,又称显示核心,视觉处理器。是一种专门运算图像的微处理器。显卡的处理器称为图形处理器。它是显示的“心脏”。 2、为什么要进行帧率测试(FPS)        帧率测试:也叫流畅度测试,主要是测试图像,视频的性能。在无线测试领域中,尤其是游戏类的App,对图像处理速度更为关注。帧率过大,对于部分低配置的测试机来说,会产生大量的热量,导致测试机过烫;如果帧率过低,会导致很不流畅,体验比较差。        在移动设备中,FPS(Frame Per Second)达到每秒60帧以上, ...
json 和 jsonp的区别:       web开发中常要用到ajax来解决向服务端异步请求动态数据,数据传递方式有2种:json和xml。其中json到目前为止被推崇或者说是首选的数据传递方案。但是json不能解决跨域的问题(json只能请求服务器本地上的资源,如服务器在192.168.1.12上,那么json只能请求192.168.1.12服务器上的资源,至于远程请求其他服务器的资源,就办不到了)。jsonp能解决这个跨域问题。    Jsonp是如何产生的:      1、ajax直接请求普通文件存在跨域或无权访问的问题,无论是静态页面,动态页面,web服务还是wcf服 ...
1、proguard原理       java代码编译成二进制class文件,这个class文件也可以反编译成源代码,除了注释外,其他的code基本都可以看到。为了防止重要code被泄露,我们往往需要混淆,即把方法名,变量名,类名,包名等这些java元素的名称改成让人意想不到的名称,这样代码结构就没有变化,还可以运行,但是想弄懂代码的架构却很难。proguard就起到了这样的作用:     一、它可以分析一组class的结构,根据用户的配置,然后把这些class文件中可以混淆的java元素进行混淆       二、删除无效的代码       三、对代码进行优化(使用adt插件导出 ...
 1、 内存溢出的原因是什么?         内存溢出是由于没被引用的对象(垃圾)过多造成JVM没有及时回收,造成的内存溢出。如果出现这种现象可行代码排查:       一)是否App中的类中和引用变量过多使用了Static修饰 如 ...
1.垃圾回收的意义      在C++中,new出来的对象所占用的内存(堆)在程序运行结束之前一直被占用着,这就导致这块内存不能被其他对象使用;而在java中,当new 出来的对象没有被引用变量引用时,这个对象所占用的内存将会 ...
    相信在面试过程中很多面试官都会问到String,StringBuffer,StringBuilder的区别。但是对于它的机制,原理会头晕。这就要拿出JVM的工作原理了。        大家都知道String是由“字符”组成的串,在程序中使用的频率很高,String是 ...
     今天看到一篇文章关于自动化测试与测试自动化的区别。受益匪浅,非常感谢那位分享出来的朋友,现在做个总结。        很多外行人或者是已经正在从事测试工作的同胞们都只知道“自化测试”这一词。但是它的工具职责和范围到底是怎样的呢,仅仅就是把手工测试工作变成由代码实现用于代替手工测试就叫“自动化测试”了吗?         例如在无线测试过程中,我们会常用robotium,monkeyrunner,uiautomator,appium等自动化框架写脚本以实现UI/功能自动化。但是像uiautomator需要在命令行里执行ant,然后把jar包push到手机里,再执行adb she ...
     经常用listview,scrollview,gridview(很少用),今天总结了下它们的区别。只有懂得了各自的优势才能更好的利用。      scrollview中只能放一个子元素,当这个子元素的高度超过屏幕的高度时,就产生滑动了,且里面的元素是App运行一启动,页面展示后,scrollview中的所有的内容都加载到了内存中。所以当数据量大时,会影响性能。      listview是只有当滑动时才加载后面的。所以当数据量大时,选择listview可提高性能。      gridview是用于做几行几列的宫格用的,但是这个功能也可通过listview来实现。其用法与l ...
一台机器上安装多个版本的jdk并解决环境问题       由于工作的原因,我需要在自己的电脑( windows7 64位)上安装2个jdk版本,即1.6与1.7,在更新系统前我配置了环境变量(右击“我的电脑”-->点击“属性”-->点击“高级系统设置”-->把jdk1.6放在了path路径下),此时在cmd上运行 java -version显示的是jdk1.6的版本信息;如果在环境变量中设置成1.7,此时cmd中运行java -version显示的是1.7。即如果我控件并指定哪个版本放在path中,系统就会找哪个jdk。        某日一不小心进行了更新windo ...
     在Android的源码中有很多方法是被@hide注释了,这代表这些方法在外面是看不到且调用不到的。但可以通过反射机制来调用。以下是反射的原理,名词解释      1、专业术语解释:           反射:就是Java自我管理这些(类,如String,ArrayList等,对象等)的机制                2、反射的作用:          可以通过反射机制发现对象(Class类的对象)的类型,发现类型(如 String类)的方法/属性/构造器          可以创建对象并访问任意对象方法和属性等      3、Class加载         ...
oracle 数据库中既然存在着exists 与 in,肯定有他们各自的工作原理以及各自的优势。    in,exists,join都能利用索引,但是工作原理不同。   1、 当call_records表中数据少而customers中的数据多时,此时选用in的性能要优于exists。因为用in时,驱动表为call_records,再用主表查询出来的记录遍历循环子查询记录。   2、当customers中的记录少而call_records的记录多时,此时选用exists的性能要优于customers,因为用exists时,驱动表为cuntomers,用子查询记录中的每一条记录去遍历“ ...
Global site tag (gtag.js) - Google Analytics