自动化一直是测试圈中的热聊,也是大家追求的技术方向。在测试中,往往回归测试也是测试人员的“痛点”。对于迭代慢、变更少的功能,就能用上自动化来替代人工回归,减轻工作量。问题在分享环境搭建之前,先抛出我的一个疑问吧。app启用时,分不同的场景:1.首次安装启用,有欢迎页;2.非首次启用,直接进入到登录页;3.配置了推荐展示时,启用app,会先展示推荐内容,才进入到登录页。不同场景对应的activity都是不同的,我目前处理办法是,写了个输入函数,加了个if判断
系统 2019-09-27 17:49:53 2174
目录一、什么是协程二、为什么要有协程三、协程的优缺点四、如何实现协程五、Gevent模块5.1模块的安装5.2用法介绍5.3代码实例六、gevent之应用一、什么是协程协程:就是单线程下实现并发协程概念本质是程序员抽象出来的,是人为的控制通过程序的IO去进行切换任务的执行并发:任务切换+保存状态二、为什么要有协程自己控制切换要比操作系统切换快的多.降低了单个线程的io堵塞时间,也就是实现了单线程下效率最高.三、协程的优缺点优点:自己控制切换要比操作系统切换
系统 2019-09-27 17:49:35 2174
1、a.log文件中包含以下eddy|123|18jay|456|202、目标结构:2.1、['eddy|123|18','jay|456|20']2.2、[['eddy','123','18'],['jay','456','20']]defli(f1):new_li=[]withopen('a.log',mode='r',encoding='utf-8')asf1:data=f1.read()data1=data.split('\n')returndat
系统 2019-09-27 17:49:35 2174
importpandasaspdfromsklearnimportdatasetsimportmatplotlib.pyplotaspltimportmatplotlib.cmfromsklearn.model_selectionimporttrain_test_splitfromsklearn.neighborsimportKNeighborsClassifierdig=datasets.load_digits()#读入sklearn内置数据print(
系统 2019-09-27 17:49:24 2174
目录一、数据类型内置方法1.1数字类型内置方法1.1.1整形1.1.2浮点型1.2字符串类型内置方法1.3列表类型内置方法1.4元组类型内置方法1.5字典类型内置方法1.6集合类型内置方法二、数据类型分类三、深浅拷贝3.1拷贝3.2浅拷贝3.3深拷贝四、异常处理4.1语法错误4.2逻辑错误一、数据类型内置方法1.1数字类型内置方法1.1.1整形作用:定义年龄/身高/体重/id号定义方式:age=18age=int('18')方法:+-*/%//**多个值o
系统 2019-09-27 17:49:10 2174
词云是一种非常漂亮的可视化展示方式,正所谓一图胜过千言万语,词云在之前的项目中我也有过很多的使用,可能对于我来说,一种很好的自我介绍方式就是词云吧,就像下面这样的:个人觉还是会比枯燥的文字语言描述性的介绍会更吸引人一点吧。今天不是说要怎么用词云来做个人介绍,而是对工作中使用到比较多的词云计较做了一下总结,主要是包括三个方面:1、诸如上面的简单形式矩形词云2、基于背景图片数据来构建词云数据3、某些场景下不想使用类似上面的默认的字体颜色,这里可以自定义词云的字
系统 2019-09-27 17:48:59 2174
先说说线程在多线程中,为了保证共享资源的正确性,我们常常会用到线程同步技术.将一些敏感操作变成原子操作,保证同一时刻多个线程中只有一个线程在执行这个原子操作。我最常用的是互斥锁,也称独占锁。其次还有读写锁,信号量,条件变量等。除此之外,我们在进程间通信时会用到信号,向某一个进程发送信号,该进程中设置信号处理函数,然后当该进程收到信号时,执行某些操作。其实在线程中,也可以接受信号,利用这种机制,我们也可以用来实现线程同步。更多信息见//www.jb51.ne
系统 2019-09-27 17:48:40 2174
说实话,都9012了,还在用这种背题式的方法来考核程序员,实在太不切合程序员的实际工作了……文末给出了一种更极客的考核方式,Talkischeap,Showmethecode(写代码,憋bb)——写得出工作代码,就说明你有工作能力;写不出,书背的再溜也不行面试官只需要:节选一段工作代码,然后把原有代码删除,让面试者自己写代码实现;或是保留一段有bug的代码,让面试者修改即可——这都是最常见的程序员工作场景,最能考核面试者的真实代码能力;而且题目随处可见,扒
系统 2019-09-27 17:48:17 2174
详解Python序列化Serialize和反序列化Deserialize序列化(serialization)序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。序列化和反序列化的目的1、以某种存储形式使自定义对象持久化;2、将对象从一个地方传递到另一个地方。3、使程序更具维护性序列化由于存在于内存中的对象都是暂时的,无法长期驻存,为了把对象的状态保持下来,这时需要把对象
系统 2019-09-27 17:48:16 2174
第一招:蛇打七寸:定位瓶颈首先,第一步是定位瓶颈。举个简单的栗子,一个函数可以从1秒优化到到0.9秒,另一个函数可以从1分钟优化到30秒,如果要花的代价相同,而且时间限制只能搞定一个,搞哪个?根据短板原理,当然选第二个啦。一个有经验的程序员在这里一定会迟疑一下,等等?函数?这么说,还要考虑调用次数?如果第一个函数在整个程序中需要被调用100000次,第二个函数在整个程序中被调用1次,这个就不一定了。举这个栗子,是想说明,程序的瓶颈有的时候不一定一眼能看出来
系统 2019-09-27 17:48:04 2174