51dev.com IT技术开发者社区

51dev.com 技术开发者社区

UI自动化测试:等待机制详解

UI自动化测试:等待机制详解

我们在UI自动化测试,常常会遇到等待时间,尤其是再网络状况不好的情况下切换页面时,如果不加入等到时机,经常会出现错误。于是,有人导入了time包,importtime,time.sleep(1),虽然这样也能够实现,但是太low了。time.sleep(1)它low在什么地方?首先:我们网页的等待时间我们不确定,当它冷...

APP的UI自动化测试框架及平台化探索

APP的UI自动化测试框架及平台化探索

关于UI测试的文章,多数是通过架构的演进,或是重构,或是推翻重做来讲述的。今天我想讲述我的“一步到位”的测试框架设计。当然,这个“一步到位”是加引号的,并不是说没有持续的优化或改进,而是指基础结构的稳定;这个“一步到位”是基于之前的失败经历和很多思...

Synchronized与ReentrantLock区别总结

Synchronized与ReentrantLock区别总结

这篇文章是关于这两个同步锁的简单总结比较,关于底层源码实现原理没有过多涉及,后面会有关于这两个同步锁的底层原理篇幅去介绍。相似点:这两种同步方式有很多相似之处,它们都是加锁方式同步,而且都是阻塞式的同步,也就是说当如果一个线程获得了对象锁,进入了同步块,其他访问该同步块的线程都必须阻塞在同步块外面等待,而进行线程阻塞和...

LINUX C编程中_REENTRANT宏的作用

LINUX C编程中_REENTRANT宏的作用

在一个多线程程序里,默认情况下,只有一个errno变量供所有的线程共享。在一个线程准备获取刚才的错误代码时,该变量很容易被另一个线程中的函数调用所改变。类似的问题还存在于fputs之类的函数中,这些函数通常用一个单独的全局性区域来缓存输出数据。为解决这个问题,需要使用可重入的例程。可重入代码可以被多次调用而仍然工作正常...

面试必备之乐观锁与悲观锁

面试必备之乐观锁与悲观锁

何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。 悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞...

乐观锁和悲观锁

乐观锁和悲观锁

乐观锁     每次获取数据的时候,都不会担心数据被修改,所以每次获取数据的时候都不会进行加锁,但是在更新数据的时候需要判断该数据是否被别人修改过。如果数据被其他线程修改,则不进行数据更新,如果数据没有被其他线程修改,则进行数据更新。由于数据没有进行加锁,期间该数据可以...

使用MASKEDTEXTBOX控件实现输入验证

使用MASKEDTEXTBOX控件实现输入验证

实现效果:  知识运用:  MaskedTextBox控件的Mask属性  BeepOnError属性  MaskInputRejected事件实现代码:privatevoidForm1_Load(objectsender,EventArgse){this.maskedTextBox1.Mask="000000-000...

C# 公共控件之maskedTextBox

C# 公共控件之maskedTextBox

IP地址框1、添加 maskedTextBox控件2、设置属性3、设定MouseLeave事件privatevoidIPAddressOnMouseLeave(objectsender,EventArgse){inti=0;inttemp=0;label1.Text=maskedTextBox1.Text.R...

谈谈HTML中scritpt标签的使用

谈谈HTML中scritpt标签的使用

在《Javascript简史》中提到,「Javascript」这门语言是由Netscape开发而来,当时候是为了让「Javascript」能与HTML页面共存,而且不影响页面的其他内容,因此增加了一个统一的脚本支持(script脚本元素)。script元素在HTML页面中使用「Javascript」语言主要的方法就是使...

在java中+=是什么意思

在java中+=是什么意思

inti=1; intsum=0; sum=sum+i;//这个意思 sum+=i;//这是简写。x+=1与x=x+1一样的效果执行一次x=x+1,就等于给x重新赋了值,这个值就是x+1例如:intx=1;x+=1;最后x的值是2x+=1一般在循环下使用,能发挥它的最大的作用。例如:whi...

Java JsonParseException异常的解决

Java JsonParseException异常的解决

在开发工作过程中,有遇到以下异常的其实是参数异常,也就是json的拼装有问题。在接口对接的时候,对方传过来的json解析报错:org.codehaus.jackson.JsonParseException:Unexpectedcharacter('c'(code99)):wasexpectingdoub...

解决JSON转JAVA对象报 java.lang.NoSuchMethodException: jsonT.bean.Fri.()错误

解决JSON转JAVA对象报 java.lang.NoSuchMethodException: jsonT.bean.Fri.()错误

今天练习JSON与JAVA之间的转化时,遇到如下错误:显示实例化Fri类时发生错误,Fri类的代码如下:publicclassFri{Stringname;intage;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=n...

java的单例模式,为什么需要volatile

java的单例模式,为什么需要volatile

目前看了java并发的书,记录一下。对于java的单例模式,正确的代码应该为: publicclassTestInstance{privatevolatilestaticTestInstanceinstance;publicstaticTestInstancegetInstance(){//1if(insta...

Java并发编程(三)volatile域

Java并发编程(三)volatile域

前言有时仅仅为了读写一个或者两个实例域就使用同步的话,显得开销过大,volatile关键字为实例域的同步访问提供了免锁的机制。如果声明一个域为volatile,那么编译器和虚拟机就知道该域是可能被另一个线程并发更新的。再讲到volatile关键字之前我们需要了解一下内存模型的相关概念以及并发编程中的三个特性:原子性,可...

Java并发编程(二)同步

Java并发编程(二)同步

如果你的java基础较弱,或者不大了解java多线程请先看这篇文章java多线程(一)线程定义、状态和属性同步一直是java多线程的难点,在我们做android开发时也很少应用,但这并不是我们不熟悉同步的理由。希望这篇文章能使更多的人能够了解并且应用java的同步。在多线程的应用中,两个或者两个以上的线程需要共享对同一...