自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 Puppeteer自动化测试实践四.覆盖率的生成

覆盖率是衡量自动化效果的一个重要指标。而在我们实现自动化测试覆盖率的时候遇到了一些问题,接下来简单讲一下怎么解决的。一.覆盖率数据的收集await page.coverage.startJSCoverage()let jsCoverage = await page.coverage.stopJSCoverage()puppeteer的覆盖率数据收集两个方法,一个是在页面open时...

2019-07-01 17:23:06 2115

原创 Puppeteer自动化测试实践三.工作流

一.本地环境开发用例调试用例用例编写本身也是需要调试和开发的。(公司很多测试平台在线编写测试用例搞不懂怎么调试和运行)。所以在我们项目中我们支持了本地编写调试用例。实现代理的方式如下:(全局setup.js)const redux = path.resolve(__dirname, './extension/redux'); const args = [ '--all...

2019-07-01 17:21:40 852

原创 Puppeteer自动化测试实践二.测试用例的编写

上一篇讲解了运行环境的搭建和开始写测试用例。接下来讲一下测试用例编写的常用技巧一. 封装封装封装你可以将所有的功能操作封装成简单的函数,然后在每个测试用例中调用,复杂操作也可以由简单操作合并而成。这里的好处是显而易见的,一是你的用例很清晰,每一步操作对应一个函数。二是在以后的项目迭代中,会大大简化你的用例维护成本,你只用改对应的操作函数,比如selector,比如操作流程修改等等。二....

2019-07-01 17:20:37 1232

原创 Puppeteer自动化测试实践一.测试环境搭建

在今年初,我们项目启动了自动化测试来保证项目质量和测试质量。在经过一系列评估后最终选择了Puppeteer+Jest的测试框架来跑我们的自动化测试。接下来讲一下我们如何搭建一个本地和ci环境的自动化测试框架。一.安装,下载Chromium。1.公司的网络是无法使用tnpm install puppeteer的,会提示下载chromium失败,所以可以先使用如下命令下载Puppeteer。...

2019-07-01 17:18:51 2311 1

原创 android积木思想

控件类是积木,逻辑类是搭积木的人,

2014-11-05 11:24:59 444

原创 代码之外应该注意的东西

1.      注释,注释不用说,其实每个程序员都知道好的注释就像是一篇美文。看完注释就能知道这个类或者本段代码的逻辑流程,也可以对照注释去看代码,好的注释可以帮助排错,也可以帮助阅读,更能整理自己的思维。可是我们在实际开发中却常常忘记这些。 2.      日志,代码里面的日志可是一门艺术。很明显,日志太多会阻塞程序运行效率。日志太少,根本看不出来程序调用时序和调用结果,日志用的好,能直

2013-09-16 00:24:40 492

原创 StringBuffer和StringBuilder区别

StringBuffer线程安全的,接口都已加锁。StringBuilder线程不安全。所以在单线程中尽量使用StringBuilder,效率更好。

2013-06-11 23:26:18 390

原创 thread研究之threadlocal

如果说static是虚拟机级别的对象,那threadlocal就是线程级别的对象,当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。在android的loop中就使用了这一数据存储工具。因为threadlocal能很好的解决一个线程有一个独立的消息队列。1.我感觉实现

2013-06-11 22:58:07 654

原创 jdk 线程之ThreadGroup

threadgroup顾名思义就是线程组,在api文档中写到:线程组表示一个线程的集合。此外,线程组也可以包含其他线程组。线程组构成一棵树,在树中,除了初始线程组外,每个线程组都有一个父线程组。允许线程访问有关自己的线程组的信息,但是不允许它访问有关其线程组的父线程组或其他任何线程组的信息。 1.首先,每个线程都有一个所属的线程组,在我们创建一个thread的时候虽然我们没有指定这个线程所

2013-06-11 22:20:15 683

原创 简单地快速存储和读取的数据结构

在项目开发中,需要一个数据容器,需要快速存储数据,和随机读取。所以设计了一种linklist和hashmap的数据结构,linklist是副表,存储索引,hashmap是主表,存储数据。这是典型的以空间换时间做法。/* * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Ap

2013-01-06 09:56:21 806

原创 Android ArrayList LinkedList Set HashMap的介绍

在Android开发中我们经常需要对数据进行分类和操作,对于轻量级的数据存储我们可能不需要动用SQLite或效率以及类库不完善的XML,由于 SharedPreferences不具备数据枚举方法,如果仅仅是一个String或Int数组可以通过一个标记分割设计外,我们还是主要来看看 Android或者说Java提供的基础数据类型辅助类ArrayList LinkedList Set HashMap的...

2012-01-03 21:35:40 95

用c语言的重言式判别

c语言写的重言式判别c语言写的重言式判别c语言写的重言式判别c语言写的重言式判别

2010-04-21

图书管理系统图书管理系统

图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统

2009-07-15

MFC可编辑表格控件MFC可编辑表格控件

MFC可编辑表格控件MFC可编辑表格控件MFC可编辑表格控件MFC可编辑表格控件

2009-07-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除