2020,6招玩转 Appium 自动化测试

Appium是个什么鬼Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的。可用于IOS和Android以及firefox的操作系统。原生的应用是指用android或ios的sdk编写的应用,移动网页应用是指网页应用,类似于ios中safari应用或者Chrome应用或者类浏览器的应用。混合应用是指一种包裹webview的应用,原生应用于网页内容交互性的应用。重要的是Appium是跨平台的,何为跨平台,意思就是可以针对不同的平台用一套api来编写测试用例。A
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

异步神器CompletableFuture

介绍上个礼拜我们线上有个接口比较慢,这个接口在刚开始响应时间是正常的。但随着数据量的增多,响应时间变慢了。这个接口里面顺序调用了2个服务,且2个服务之间没有数据依赖。我就用CompletableFuture把调用2个服务的过程异步化了一下,响应时间也基本上缩短为原来的一半,问题解决。正好上次分享了函数式接口和Stream的使用,这次就分享一下CompletableFuture,里面也用到了大量的函数式接口想方便的异步执行任务,就必须放到单独的线程中。继承Thread类,实...
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

一个命令,让你的网站支持https

介绍最近写小程序,但是小程序的接口得通过https的形式访问,所以用nginx转发了一下。想到Google搜索引擎会提高https网站的权重,索性把我的网站改造成同时支持http和https了。看效果http形式访问https形式访问我是用LET’S ENCRYPT来生成证书的,这个应该是用的最多的一个工具,也很方便。我直接参考了官方文档上关于在CentOS 7上用nginx来让网站支持https的教程https://certbot.eff.org/l...
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

8点了解Java服务端单元测试

一. 前言单元测试并不只是为了验证你当前所写的代码是否存在问题,更为重要的是它可以很大程度的保障日后因业务变更、修复Bug或重构等引起的代码变更而导致(或新增)的风险。同时将单元测试提前到编写正式代码进行(测试驱动开发),可以很好的提高对代码结构的设计。通过优先编写测试用例,可以很好的从用户角度来对功能的分解、使用过程和接口等进行设计,从而提高代码结构的高内聚、低耦合特性。使得对日后的需求变更或代码重构等更加高效、简洁。因此编写单元测试对产品开发和维护、技术提升和积累具有重大意义!二. 第一个单元测
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

深入理解什么是端口(port)

每当看到有人的简历上写着熟悉 tcp/ip, http 等协议时, 我就忍不住问问他们: 你给我说说, 端口是啥吧! 可惜, 很少有人能说得让人满意... 所以这次就来谈谈端口(port), 这个熟悉的陌生人.在此过程中, 还会谈谈间接层, naming service 等概念, IoC, 依赖倒置等原则以及 TCP 协议的一些重点知识.常见端口在我们的日常开发过程中, 特别是后端的开发人员, 即便他没有真正理解端口的细节, 他还是会听过见过各类的端口, 这个东西几乎无处不在, 比...
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

全网最全程序员效率工具及小技巧(一)

命令行CMD秒进指定目录效率低的操作win+r,输入cmd,然后跳到指定目录在这里插入图片描述骚操作文件夹地址栏输入cmd,弹出cmd窗口,同时进入指定目录在这里插入图片描述在这里插入图片描述SSH和SCP命令ssh:从一台机器登陆到另一台机器scp:将文件从一台机器传输到另一台机器ssh命令虽然可以通过密码登陆,但还是比较麻烦,建议配置公钥访问。先看自己之前是否已经生成了公钥文件,如果没有需要手动生成windows:在...
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

2020,必备自动化测试 之 “好用例、坏用例”

自动化测试的重要性显而易见,但自动化测试又无法解决所有问题,所以说完全依赖自动化是不可能的,但完全没有自动化是万万不能。在软件开发项目中,重度依赖人力进行持续回归是一件非常枯燥的重复工作。企业需要花费大量的时间和金钱来维持这样一支队伍以保证产品质量,而队伍中的同学在每天重复劳动的工作之下,也丝毫得不到成长,看不到方向。尽管自动化测试不能解决所有问题,但是却拥有一个优势:“Once” Written, Run Anytime as Desired(一旦写好,即可随意重复执行)。所以,自动化测试通常都会跟持续
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

七种对象复制工具类,你最看好哪个?

日常编程中,我们会经常会碰到对象属性复制的场景,就比如下面这样一个常见的三层 MVC 架构。当我们在上面的架构下编程时,我们通常需要经历对象转化,比如业务请求流程经历三层机构后需要把它DTO 转为DO然后在数据库中保存。当需要从数据查询数据页面展示时,查询数据经过三层架构将会从 DO 转为 DTO,最后再转为 VO,然后在页面中展示。当业务简单的时候,我们手写代码,通过 getter/setter复制对象属性,十分简单。但是一旦业务变得复杂,对象属性变得很多,呢么手写代码就会成为程序员.
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

测试行业是该选择手动测试还是自动化测试?

在软件测试行业中,争议最大的话题是“更好的是手动测试还是自动化测试”。尽管自动化测试最常谈论流行语,并且正在慢慢主导测试领域,手动测试的重要性不可忽视。在本文中,将探讨手动测试和自动化测试之间的更深差异。时间成本在一个内容很多且测试阶段运行了很长时间的项目中,自动化测试是理想的选择,因为它减少了所需的资源数量。可以使用单个脚本同时执行多种类型的相似测试用例场景。对于大型项目,估算预算足以支付自动测试工具的设置和维护费用。但是,在测试阶段仅运行几周的小型项目中,手动测试更为可取,因为资
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

怒爬某破Hub站资源,只为撸这个鉴黄平台

黄色已经是我们所不容然而却防不胜防的,尤其是对于做内容的工具和平台,所以花了30分钟搭建了一个鉴黄平台,分享给大家。# 数据准备找了 N 多资源都不能解决问题,于是怒爬某 Bub资料,备用准备验证鉴黄效果。# 账号准备本文使用的是 UCloud 提供的 UAI-Censor,目前他支持图片,暴恐、涉政会陆续上线。他提供了每日2000张免费调用额度,所以无论对于测试还是小众的工具足够了。1、使用如下链接注册账号https://urlify.cn/Bj2Y3y2、创建 UAI-Cen
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

高并发架构系列:Redis的基本介绍,五种数据类型及应用场景分析

一、Redis基本概念介绍和特性1.1 Redis基本概念介绍1.Redis是远程的,有客户端和服务端,我们一般说的是服务端;2.Redis是基于内存的,所以比基于硬盘的MySQL要快很多,但非常吃内存3.Redis是非关系型数据库。本质上也是数据库,但MySQL关系型数据库存储时必须定义数据词典,而Redis则不需要。1.2 Redis 和 Memcached比较Redis数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,..
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

接口测试中postman环境和用例集

postman的环境使用postman里有环境的设置,就是我们常说的用变量代替一个固定的值,这样做的好处是可以切换不同的域名、不同的环境变量,不同的线上线下账户等等场景。下面就看下怎么用吧。创建一个Environmentpostman有一个envrionment(环境)设置的地方。请看下图:要设置一个环境,可以点击那个齿轮。 添加一个测试环境的变量集合:再添加一个线上环境的变量集合:可以看到host变量代表了线上和线下两个域名。这样就可以覆盖不同域名的测试场景了。当在测试环境时用测试的域名
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

APP重构之路:引入单元测试

一、为什么要引入单元测试在开发过程中我们会遇到这样一些问题:面对需要重构庞大的模块代码时无从下手修改了一处地方却在另一处地方引发了新的bug扩展新功能的同时导致旧代码出现bug在测试人员难以覆盖到的基础功能接口出现了bug出现了一种难以重现的特殊边界条件触发的bug另外我们也许还会遇到一些这样的模块:A模块依赖于B模块的结果,但是B模块尚未开发完成模块状态过于复杂,手工测试需要耗费大量时间模块业务与时间节点相关,手工测试难以覆盖这个时候也许能够利用经验和丰富的debug技巧来解
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

2020,最新APP重构:网络请求框架

在现在的app,网络请求是一个很重要的部分,app中很多部分都有或多或少的网络请求,所以在一个项目重构时,我会选择网络请求框架作为我重构的起点。在这篇文章中我所提出的架构,并不是所谓的 最好 的网络请求架构,因为我只基于我这个app原有架构进行改善,更多的情况下我是以app为出发点,让这个网络架构能够在原app的环境下给我一个完美的结果,当然如果有更好的改进意见,我会很乐于尝试。关于网络请求框架一个好的网络请求框架对于一个团队来说是十分重要的。如果一个网络请求框架没有封装好,或者是在
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

2020,最新Model的设计-APP重构之路

很多的app使用MVC设计模式来将“用户交互”与“数据和逻辑”分开,而model其中一个重要作用就是持久化。下文中设计的Model可能不是一个完美的,扩展性强的model范例,但在我需要重构的app中,这样的设计能够满足我的需要。关于ModelModel层包含了app的数据与逻辑,Model层中的类需要关心的是数据的表现,存储,以及操作。Model层是整个app生态中相对独立的一个部分,因为它不会直接与controller层或者是View层进行通讯,而是在其他层需要请求它的信息的时候进行间接通讯。Mo
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

架构师成长之路:Kafka连接器深度解读之错误处理和死信队列

Kafka连接器是Kafka的一部分,是在Kafka和其它技术之间构建流式管道的一个强有力的框架。它可用于将数据从多个地方(包括数据库、消息队列和文本文件)流式注入到Kafka,以及从Kafka将数据流式传输到目标端(如文档存储、NoSQL、数据库、对象存储等)中。现实世界并不完美,出错是难免的,因此在出错时Kafka的管道能尽可能优雅地处理是最好的。一个常见的场景是获取与特定序列化格式不匹配的主题的消息(比如预期为Avro时实际为JSON,反之亦然)。自从Kafka 2.0版本发布以来,Kafka连接
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

如何使用常用移动端(Android)自动化测试工具——Appium

如何使用常用移动端(Android)自动化测试工具——Appium自动化测试自动化测试大家都有所了解,近十年来,自动化测试这项技能也一直是软件测试从业者想要掌握的一项技能,根据有关调研显示,希望掌握自动化测试技能的人十年来都约占七成本文会带来自动化测试中的移动端(Android)自动化测试的内容和对其测试框架进行简单的概述,希望可以让大家对Android自动化测试有个大致的理解,然后以Appium为例,介绍其环境搭建和基本使用。Android自动化测试Android自动化测试简述自动化测试内容
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

给测试人员的一条忠告——手工测试与自动化测试该怎么取舍

前言近些年来,测试群体虽然是以手工测试为主,但是随着企业逐渐明白软件测试中存在着大量的重复性工作,而这种工作是比较适合机器而不是人类来完成,外加人们对软件的需求更多,大家对使用手工方式来完成软件测试感到的越来越力不从心,自动化测试的使用率日益增高,那么自动化测试已经能完全取代手工测试吗?在回答这个问题前,我们来看看自动化测试对比手工测试的优劣(1)覆盖率优势:在同等时间内,启动自动化测试能够覆盖更多的功能。劣势:只适合回归测试,开发中的功能不划算。对于开发中功能,需求或者实现的更改,都会导致自动
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

必知必会JVM四-垃圾收集器介绍

四、垃圾回收器介绍不同的垃圾收集器有不同的垃圾回收算法,通过jps -v命令可以显示当前使用的垃圾回收器当前比较多的JVM收集器有Serial/Serial Old,ParNew,Parallel Scavenge(ParallerGC)/Parallel Old,Concurrent Mark Sweep (CMS),G1垃圾回收器。4.1 垃圾收集器的性能指标垃圾收集器也分为单线程和多线程的,同时也分为并行和并发。垃圾收集器的主要性能指标就是垃圾回收的吞吐量和垃圾收集时间。并行:
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0

你不知道的redis二-缓存穿透和缓存雪崩问题及解决方案

一、缓存使用方式1、客户端请求业务系统2、业务系统首先判断redis是否存在数据3、如果数据存在redis则返回给业务系统4、业务系统返回给客户端5、如果redis不存在数据,则业务服务区数据库中查询数据6、然后将数据库中的数据返回给客户端这个使用方法使我们在业务系统中再常见不过的方式。但是在高并发场景下,他们会存在什么样的问题呢?二、缓存穿透问题缓存穿透是指存在用户不断地访问缓存和数据库中都没有的数据,从而导致数据库压力过大,从而可能引发服务处理缓慢甚至数...
分类: 其他 发布时间: 09-24 11:35 阅读次数: 0