JAVA性能剖析1——JVM内存管理与垃圾回收

内存管理和垃圾回收是JVM非常关键的点,对Java性能的剖析而言,了解内存管理和垃圾回收的基本策略非常重要。最近进行了系列性能测试培训,对JVM内存管理涉及到的概念重新学习梳理了遍,总结下方便大家共同学习进步。 一、为什么要分代 在程序运行过程当中,会创建大量的对象,这些对象大部分是短周期的对象,小部分是长周期的对象。对于短周期的对象,需要频繁地进行垃圾回收以保证无用对象尽早被释放掉,对于长周期对象,则不需要频繁垃圾回收以确保无谓地垃圾扫描检测。为了解决这种矛盾,Sun JVM的内存管理采用分代的策略。 二、如何分代 这里先上传一张模型图: 如图所示,虚拟机中的共划分为三个代:年轻代(Young Generation)、年老点(Old Generatio... 详情

ios例子12 pageControl和UIScrollView

上一篇:ios例子11 pageControl和手势UIGestureRecognizer 下面介绍pageControl结合ScrollView实现连续滑动翻页的效果,ScrollView我们在应用开发中经常用到,以g这种翻页效果还是很好看的,如下图所示: 通过这个例子,我们重点学习UIScrollView。UIScrollView滚动的效果主要的原理是修改他的坐标,准确的讲是修改原点坐标,这一点我们在下面代码中自行体会。在动手创建工程之前,先了解以下几点: UIScrollView学习要点 1. 注意只有UIScrollView,没有UIScrollViewController。 UiScrollView同许多控件一样有自己的delegate,但它不像UIView... 详情

ios例子11 pageControl和手势UIGestureRecognizer

上一篇:ios例子10 Test_AFNetworking——网络请求下一篇:ios例子12 pageControl和UIScrollView 在本篇中,先介绍用手势识别来切换图片。在下一篇中将介绍使用UIScrollView实现连续滑动的图片。 这两个例子会表现出两种不同的翻页效果。 UIPageControl 当需要提示内容分页显示时,可以使用ios提供的UIPageControl控件,其效果如下所示。 下面开始我们的例子 1.创建一个Single View应用 通过菜单创建一个新工程:路径为File> New> New Project-Single View Application 2.改变stroyBorad起始页的背景颜色 由于P... 详情

使用JNA解决自动化测试无法做密码输入操作的问题

在做页面自动化(以使用selenium为例)的时候,很常见的一个场景就是输入密码。往往对于输入框都使用WebElement的sendKeys(CharSequence... keysToSend)的方法。 Java代码 /** *Usethismethodtosimulatetypingintoanelement,whichmaysetitsvalue. */ voidsendKeys(CharSequence...keysToSend); 一般情况下这个方法是可以胜任的,但是现在很多网站为了安全性的考虑都会对密码输入框做特殊的处理,而且不同的浏览器也不同。例如支付宝。 支付宝输入密码控件在Chrome浏览器下 支付宝输入密码控件在F... 详情

IOS杂七杂八——录制回放(2)

(3)我的工作 我在IOS录制回放上走了比较多的弯路,直到最后研究MonkeyTalk才觉得开始有点曙光了,当然之前的某些工作也是有一定价值的,只是对于IOS自动化测试作用不大。 1)基于事件的IOS录制回放工具 首先说明下IOS的事件传递机制, 在IOS系统中有个很重要的概念:Responder。基本上所有的UI相关的控件,view和viewcontroller都是继承自UIResponder。事件的分发正是通过由控件树所构成的responder chain(响应链)所进行的。如下图所示是一个典型的IOS事件传递响应链, 当用户发起一个事件,比如触摸屏幕或者晃动设备,系统产生一个事件,同时投递给UIApplication,而UIApplication则将这个事件传递... 详情

IOS杂七杂八——录制回放(1)

1.IOS录制回放 说明:本文针对的是Native APP,至于Web APP不在本文论述的范畴。 开始的时候对于IOS录制回放机制完全不了解,基本属于连听都没听说过的范畴,只能进行慢慢的了解和调研,google、StackOverFlow什么的查找了一通之后,还是不得其门而入,但是渐渐的有了个大致的概念。 (1)为什么要做IOS的录制回放? 关于这个问题,我想从Web自动化测试开始说起,在Web自动化测试中,底层引擎都是运行在PC机上,随着selenium以及基于selenium的一些测试框架(如AutomanX)的发展,基本上各大公司都可以做到至少脚本级别的测试维护,测试人员可以比较轻松的进行脚本的维护。Web自动化测试中,一个很重要的环节是获得页面元素的定位信息... 详情

在短平快项目中如何减少测试返工

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 在互联网产品中,每个产品的迭代速度越来越快,项目中的测试同学面临着前期需求摇摆不定,后面发布时间卡在那里,项目的前期阶段似乎总是在压榨着测试的执行时间。 如何减少测试返工,测试阶段的工... 详情

IOS杂七杂八——客户端开发和持续集成

做了几个月的IOS方面的研究,曲曲折折的时候多,顺风顺水的时候少;挫折多,成果少;不管怎么样,把我自己的一些体会写出来,希望能对大家有所帮助。 1.客户端开发 因为要做IOS方面的相关探究,所以需要先基本了解它的开发模式和流程,于是我就做了一个淘测试的客户端Demo,Demo的原型很简单,包括:数据异步处理模块、blog列表展示页面、blog详情展示页面、评论页面、blog类型展示条。之所以称之为Demo,是因为它离一个真正完整的产品还有非常大的距离。因为正儿八经做APP开发的时间很短,自己本身只算一个在IOS门口徘徊很久不得其门而入的门外汉,下面所有的东西仅仅是我自己的感悟,有些地方可能是幼稚甚至是错误的,我只是暂时都列出来: l 单纯的在技术层面来说,一个良好的交... 详情

ios例子10 Test_AFNetworking——网络请求

上一篇:ios例子9 delegate模式——segue和delegate实现两个页面传值下一篇:ios例子11 pageControl和手势UIGestureRecognizer AFNetworking(简称ANF) 是 iOS 一个使用很方便的网络开发框架。另外还有一个广泛使用的ios网络组件,ASIHTTPRequest(简称ASI)。 AFN逻辑简单清晰,大量使用了框架API,易用性要比ASI好很多。由于ASI没有过多使用Cocoa框架中已经封装的API,所以ASI的性能比AFN要好,但是在文件小于12K的测试中ASI的性能优势并没有非常明显。 它们二者的对比具体请参考:对比iOS网络组件:AFNetworking VS ASIHTTPRequest. 下面介... 详情

webdriver无法识别安全控件,求助

开始使用webdriver+testng写一些脚本有一段时间,现在有一个问题,就是很困扰; driver无法识别安全控件(密码),试着用action去sendkeys,没有办法获取; 试着能不能去除安全控件,修改控件的属性(安全控件用JS编写) 大家有什么好的办法不? 详情

ios例子9 delegate模式——segue和delegate实现两个页面传值

上一篇:os例子6,7,8 Test_storyboard——storyboard三种sugue下一篇:ios例子10 Test_AFNetworking——网络请求 页面传值 如果有两个页面A和B之前需要传值,如下图所示,从A页面打开一个B页面,填入一些信息后,展现在B页面。这个过程需要从B页面传数据给A页面。 A->B的数据传递可以在segue中实现,B->A的数据传递则用delegate。下面分别讲述这两种传值方式。 一.segue传值 新建一个Single View应用,并在stroyboard中拖入一个viewController.并添加相应的控件,如下图所示,然后建立“编辑”按钮到页面2的model segue. 新建一个Secon... 详情

ios例子6,7,8 Test_storyboard——storyboard三种sugue

上一篇:ios例子5 Test_storyboard_single——单页面的storyboard应用 下一篇:ios例子9 delegate模式——segue和delegate实现两个页面传值 一.storyboard Storyboard将原有工程中的所有xib文件集成在一起,用拖曳的方式建立ViewController相关之间的跳转关系,可以帮助你解决写很多重复的跳转方法的麻烦,节省很多时间,以便你能够完全的专注于核心功能的实现上。 Storyboard引入了2个概念: 1. scene:一个场景,由一个viewController和相关的xib表示。 2. segue:在这是用于连接scenes,其有多种类型,包括:Push,Modal,Custom。当然... 详情

ios例子5 Test_storyboard_single——单页面的storyboard应用

上一篇:ios例子4 Test_xib2——重复使用xib 下一篇:ios例子6,7,8 Test_storyboard——storyboard三种sugue 1.storyboard Storyboard,是Xcode4.2新增的一个特性,它将原有工程中的所有xib文件集成在一起,用拖曳的方式建立ViewController相关之间的跳转关系,使得整个程序的UI跳转逻辑清楚明了。 此例将创建一个Single View Application。完成与xib1中相同的效果。帮助理解Storyboard与xib之间的相似性。 2. 创建一个Single View应用 通过菜单创建一个新工程:路径为File> New> New Project-Single ... 详情

ios例子4 Test_xib2——重复使用xib

上一篇:ios例子3 Test_xib1——使用xib布局 下一篇:ios例子5 Test_storyboard_single——单页面的storyboard应用 1.复用的xib 在xib1中我们利用模板建立了一个xib和ViewController的关联体。本例介绍第2种xib使用方法,使用XIB 但不使用ViewController 当他的载体 。当一个页面中出现多个区域具有相同结构时(如下图所示),我们可以重用xib。将实现下图所示应用。 2. 创建一个empty应用 通过菜单创建一个新工程:路径为File> New> New Project-Empty Application 3.创建文件 创建两个Group:Models与View... 详情

ios例子3 Test_xib1——使用xib布局

上一篇:ios例子2 Test_MVC——理解mvc模式应用 下一篇:ios例子4 Test_xib2——重复使用xib 1.了解xib Xib文件就是MVC模式中的View这个层的界面显示布局的信息。即类似java中的jsp文件。以xml文件格式存储方式,可以手动编辑与修改。所有的xib中的控件及关联绑定信息都可以通过.m文件的中的代码进行实现。所以xib文件不是必须的,但为了更好的可视化编程建议还是使用。 此例中将实现如下图所示的应用程序,展示一个宝贝的信息(没有通过网络请求宝贝详情,网络请求参考AFNetworking) 2. 创建一个empty应用 通过菜单创建一个新工程:路径为Fi... 详情