图文教程

从基础概念到工具实操,逐篇掌握测试技能。

517 篇内容

2018

(三)Docker 镜像

Docker 运行容器前需要本地存在对应的镜像,如果镜像不存在本地, Docker 会从镜像仓库下载(默认是Docker Hub公共注册服务器中的仓库)。 Docker Hub:https://hub.docker.com 阿里云镜像:https://dev.aliyun.com/search.html 灵雀云:https://hub.alauda.cn/ …

1 分钟阅读

(四)Docker 容器

简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境。 如果把镜像看成面向对象中的 类 的话,那么容器就是 类 的实例化 对象。 启动容器有两种方式,一种是基于镜像新建一个容器并启动, 另外一个是将在终止状态(stopped)的容器重新启动。 通过docker run 命令来启动容器。 查看运行帮助: 下面的命令输出一个 “Hello …

2 分钟阅读

(五)Docker 仓库

前面在下载镜像的适应已经用到了Docker仓库,如果是镜像的一个托管平吧。 一个容易混淆的概念是注册服务器(Registry)。 实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。从这方面来说, 仓库可以被认为是一个具体的项目或目录。例如对于仓库地址 registry.hub.docker.com/ubuntu 来 …

1 分钟阅读

(六) 创建Nginx容器

最简单的方法就是通过 docker pull nginx 命令来创建 Nginx容器。 或者: 其中 registry.docker-cn.com 为国内的官方镜像仓库,速度要好很多。 查看镜像: 启动 ngnnx 容器 -name 指定启动容器的名称为 some-nginx。 -d 让Docker容器在后台以守护态(Daemonized)形式运行。 -d …

1 分钟阅读

(七) 创建docker selenium容器

SeleniumHQ官方项目:https://github.com/seleniumHQ/docker-selenium 项目目前快速迭代中。 这里主要针对的是 Selenium Grid,它用于分布式自动化测试,就是一套Selenium 代码可在不同的环境上运行。刚好,Docker可快速的创建各种环境。 Selenium Grid 有两个概念 hub :主 …

1 分钟阅读

(八)Docker Dockerfile

虽然,前面已经会 使用 Nginx 和 docker selenium 来启动容器,但也仅仅是会使用,Dcoker 中还有许多概念和细节需要我们继续学习。 Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行。 一般的 Dockerfile 分为四部分:基础镜像信息、 维护者信息、 镜像操作指令 和 容器启动时执行指令 。 …

2 分钟阅读

(九)创建 Docker 镜像

创建镜像有很多方法,用户可以从 Docker Hub 获取已有镜像并更新,也可以利用本地文件系统创建一个。 查看已有的镜像: 下面进入到ubuntu容器中: 注意: 记住容器的 ID,稍后还会用到。 在容器中添加 添加 Python3 开发环境。 当结束后,我们使用 exit 来退出,现在我们的容器已经被我们改变了,使用 docker commit 命令来提 …

2 分钟阅读

(十)Docker Compose安装与创建Flask web应用

Docker Compose 是 Docker 官方编排(Orchestration)项目之一, 负责快速在集群中部署分布式应用。 Dockerfile 可以让用户管理一个单独的应用容器;而 Compose 则允许用户在一个模板(YAML 格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个Web服务容器再加上后端的数据库服务容器 …

2 分钟阅读

(十一)Docker Compose创建Wordpress应用

wordpress是最常见博客系统,一般部署需要LAMP/WAMP环境,这介绍通过Docker compose对它进行编排和部署。 Docker Hub地址: https://hub.docker.com/_/wordpress/ images 镜像名 restart 指定版本 ports 80为镜像端口, 映射的8081为主机端口。 environment …

1 分钟阅读

(十二)Docker Machine介绍

官方文档:https://docs.docker.com/machine/overview/ 可以使用Docker Machine做什么? 在Mac或Windows上安装并运行Docker 配置和管理多个远程Docker主机 提供Swarm集群 Docker Machine是一个工具,可以让你在虚拟主机上安装Docker Engine,并 …

1 分钟阅读

(十三)Docker Machine安装

在macOS和Windows上,当你安装Docker for Mac,Docker for Windows或Docker Toolbox时,Machine将与其他Docker产品一起安装。 如果你只需要Docker Machine,则可以按照下一节中的说明直接安装Machine二进制文件。 你可以在GitHub上的docker/machine release …

1 分钟阅读

(十四)Docker Machine基本使用

这一小节演示Machine的基本使用。 以 macOS 系统为例: 指令: 指令: 可以看到我们刚创建的“my-machine”已出现在 machine 的列表当中。 指令: 指令: 如果没有任何错误提示说明连接该 machine 成功了,因为该 machine 已安装了docker client,所以此时你可以执行 docker 的相关操作。 …

2 分钟阅读

用Python来玩微信《跳一跳》分析

上周无意中发现的一个《跳一跳》辅助的开源程序;现在已经12k的Star了。 https://github.com/wangshub/wechat_jump_game 今天要就来简单分析一下它的实现原理。当然,目的肯学是学习啦! 自动化的实现主要用到两个技术。 官方网站:http://adbshell.com/ Android Debug …

3 分钟阅读

(一)从这里开始

其实,本Java教程是写给自己的,所以,肯定不是零基础,也不会告诉你Java有多么的好,也不会吹嘘它能做多少事情。 这里简单的总结一下对我编程语言的学习过程。我真正在开始学习Java是在2010年的时候,当时是希望找一份Java开发的工作,于是,开始看马士兵、李兴华他们的Java视频教程。可以跟着例子敲,但关掉它们的视频,我却写不出一行代码。 归结原因有两 …

1 分钟阅读

(二)Hello world

按照管理先用Java写一个 “Hello world” 。 main()方法的定义: main()方法是Java应用程序的入口方法,也就是程序运行时的第一个方法。声明为:public static void main()。 public static:由于JVM在运行这个Java应用程序的时候,首先会调用main()方法,调用时不实例化这个类的对象,而是通过 …

1 分钟阅读

(三)Java的强类型定义

在由Python转向Java的一个最大的感受就是Java的类型定义。Java要求你所定义的常量/变量和方法必须要声明类型。 定义常量与变量。 final double:final用于定义常量,double为常量PI的类型。 int:为变量R的类型。 更多类型 更多一些常用的数据类型: 这种强类型还体现在数组和HashMap中。 类型的要求也体现在方法的定义 …

1 分钟阅读

(四)Java的三种基本结构

结构化编程的三种基本结构?你可能会犹豫一下,它们分别是: 顺序结构 分支结构 循环结构 大学学过 C 语言的同学一下就明白了,具我接触过的编程语言都提供的了这三种基本结构,不管是面向过程的编程语言,还是面向对象的编程语言。 顺序结构 表示程序中的各操作是按照它们出现的先后顺序执行的。 分支结构 表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的 …

2 分钟阅读

(五)Java数据结构:数组和HashMap

Java的数据结构包含的数接口和类分好多种,不过,我觉得最常用的就是数组和HashMap(反正是我最常用的),所以,将他们拿出来介绍一下。 数组 保存的是一组有顺序的、具有相同类型的数据。在Java的数组中,所有数据元素的数据类型都是相同的,可以通过数组的下标来访问数组。 在创建数组的时候需要为其分配空间大小, 在本例子中, 通过循环将 0~4 之间的 5 …

2 分钟阅读

(六)Package 和 Import

除非你写的代码超级简单,如:打印。大多数情况情,必须会导入依赖的类。这些类大体上分三类: 由我们自己创建的类。 由Java JDK提供的类。 由第三方库或框架提供。 其实, package 名称就像是我们的姓,而 class 名称就像是我们的名字。package 名称有很多点号“ . ”,就好像是复姓。 比如说java.lang.String, …

1 分钟阅读

(七)类与对象

Java是一门面向对象的语言,其重要的一个思想就是 “万物皆对象”。 从某中意义上讲,类是Java面向对象性的基础,Java的任何工作都要在类中进行。 创建一个 “程序员” 类,人一般属性包括姓名、性别、年龄、住址等。他的行为吃饭、睡觉、写代码等。 注意,这个类在创建时并没有加 public 的修饰符,关于修饰符的权限: private: 只有本类可见。 …

1 分钟阅读