01 2021 档案
摘要:查看文件内容总览 cat 由第一行开始显示文件内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写! nl 显示的时候,顺道输出行号! more 一页一页的显示文件内容 less 与 more 类似,但是比 more 更好的是,他可以往前翻页! head 只看头几行 tail 只
阅读全文
摘要:目录命令总览 ls(英文全拼:list files): 列出目录及文件名 cd(英文全拼:change directory):切换目录 pwd(英文全拼:print work directory):显示目前的目录 mkdir(英文全拼:make directory):创建一个新的目录 rmdir(英
阅读全文
摘要:前言 平常linux系统用的也不少,那么linux下的每个目录都是用来干什么的,小伙伴们有仔细研究过吗?让我们来了解下吧 Linux 系统目录结构 登录系统后,在当前命令窗口下输入命令: [root@jkc ~]# ls / bin boot dev etc home lib lib64 lost+
阅读全文
摘要:前言 之前我们用docker手动安装了jenkins环境,在jenkins中又安装了python3环境和各种安装包,如果我们想要在其他3台机器上安装,又是重复操作,重复劳动,那会显得很low,这里可以使用Dockerfile来让他自动执行安装命令,类似shell脚本 环境准备 1.docker安装,
阅读全文
摘要:前言 我们使用mac时,想让本地文件上传至服务器,该怎么办呢 windows系统,我们可以使用xftp或者rz命令,那么mac呢? mac系统,我们可以使用sftp、scp或者rz命令,本文介绍sftp 远程连接 首先我们打开默认终端,点击左上角shell,选择新建远程连接 连接详细过程 1.选择安
阅读全文
摘要:前言 Dockerfile 中提供了两个非常相似的命令 COPY 和 ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景。 Build 上下文的概念 在使用 docker build 命令通过 Dockerfile 创建镜像时,会产生一个 build 上下文(con
阅读全文
摘要:前言 之前通过docker搭建过jenkins+python3环境,如果想要在不同的机器上搭建一样的环境,就可以将之前搭建的镜像上传到镜像仓库,这样方便在不同的机器上快速搭建同一套环境。 如果公开的话,别人也可以用你的镜像快速搭建环境,类似于 GitHub 本地代码上传到代码仓库,再从仓库拉取代码到
阅读全文
摘要:前言 如果我们已经安装了一个python3的环境,如果另一台机器也需要安装同样的环境又要敲一遍,很麻烦,这里可以配置Dockerfile文件,让其自动安装,类似shell脚本 Dockerfile编写 在当前目录新建一个文件夹docker-run, cd进入到文件夹,touch新建一个Dockerf
阅读全文
摘要:前言 Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 Dockerfile简介 Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。 简单来说,Dockerfile就是把我们安装环境的每个步骤和指令,放到一个文
阅读全文
摘要:前言 前面我们运行的容器并没有一些什么特别的用处。 接下来让我们尝试使用 docker 构建一个 web 应用程序。 我们将在docker容器中运行一个 Python Flask 应用来运行一个web应用。 运行一个web容器 docker pull training/webapp # 载入镜像 d
阅读全文
摘要:前言 实际工作中我们部署一个应用,一般不仅仅只有一个容器,可能会涉及到多个,比如用到数据库,中间件MQ,web前端和后端服务,等多个容器。 我们如果一个个去启动应用,当项目非常多时,就很难记住了,所有需要一个配置文件,负责实现对Docker容器集群的快速编排。 docker-compose 简介 D
阅读全文
摘要:前言 Docker的三大核心概念:镜像、容器、仓库。初学者对镜像和容器往往分不清楚,学过面向对象的应该知道类和实例,这跟面向对象里面的概念很相似 我们可以把镜像看作类,把容器看作类实例化后的对象。 | docker | 面向对象 | | | | | 镜像 | 类 | | 容器 | 实例 | 当运行容
阅读全文
摘要:前言 上一篇讲到pull 镜像,但是pull镜像的时候下拉的速度实在感人,有什么解决办法吗?我们只需将docker镜像源修改为国内的 将docker镜像源修改为国内的: 在 /etc/docker/daemon.json 文件中添加以下参数(没有该文件则新建): {"registry-mirrors
阅读全文
摘要:前言 当我们在一台电脑上搭建了python3.6的环境,下次换台电脑,又得重新搭建一次,设置环境变量等操作。 好不容易安装好,一会提示pip不是内部或外部命令,一会又提示pip: command not found,想死的心都有了。 搭建环境是真的麻烦,不弄好又不行,从今天开始学好docker,环境
阅读全文
摘要:前言 前面一篇学了mac安装docker,这篇来学习在linux上安装docker 环境准备 Docker支持以下的CentOS版本,目前,CentOS 仅发行版本中的内核支持 Docker。 Docker 运行在 CentOS 7 (64-bit)上,要求系统为64位、系统内核版本为 3.10 以
阅读全文
摘要:前言 跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。 jenkins的定时任务是用的crontab语法 定时构建语法 五颗星,中间用空格隔开 * * * * * 第一颗*表示分钟,取值0~59 第二颗*表示小时,取值
阅读全文
摘要:前言 当我们的自动化项目越来越多的时候,在代码仓库会提交不同的分支来管理,在用jenkins来构建的时候,我们希望能通过参数化构建git仓库的分支。 下载安装Git Parameter插件 系统管理-插件管理-搜索:Git Parameter 下载安装 等待安装即可 参数化构建工程 进入项目-配置-
阅读全文
摘要:前言 前面已经实现在jenkins上展示html的测试报告,接下来只差最后一步,把报告发给你的领导,展示你的劳动成果了。 安装 Email Extension Plugin 插件 jenkins首页-系统管理-插件管理,可选插件,搜索: Email ,安装Email Extension Plugin
阅读全文
摘要:前言 jenkins集成了allure插件,安装插件后运行pytest+allure的脚本即可在jenkins上查看allure报告了。 allure安装 在运行代码的服务器本机,我这里是用的docker容器,在容器内部安装allure-pytest 先进docker容器 docker exec -
阅读全文
摘要:前言 用docker搭建的Jenkins环境时间显示和我们本地时间相差8个小时,需修改容器内部的系统时间 查看时间 查看系统时间 date-R 进入docker容器内部,查看容器时间 docker exec -it -u -root 容器名 /bin/bash date -R 查看容器内部系统时区
阅读全文
摘要:前言 python自动化的脚本开发完成后需提交到git代码仓库,接下来就是用Jenkins拉取代码去构建自动化代码了 新建项目 打开Jenkins新建一个自由风格的项目 源码管理 Repository URL 代码仓库地址 Credentials git仓库登陆的账号和密码凭证 指定分支(为空时代表
阅读全文
摘要:前言 使用docker安装jenkins环境,jenkins构建的workspace目录默认是在容器里面构建的,如果我们想执行python3的代码,需进容器内部安装python3的环境。 进jenkins容器 进docker容器, 加上-u root 以root用户权限进入容器 docker exe
阅读全文
摘要:前言 jenkins的环境搭建方法有很多,本篇使用docker快速搭建一个jenkins环境。 环境准备: mac/Linux docker docker拉去jenkins镜像 先下载jenkins镜像https://hub.docker.com/r/jenkins/jenkins/tags,选择l
阅读全文
摘要:前言 Docker 提供轻量的虚拟化,你能够从Docker获得一个额外抽象层,你能够在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,例如你可以将Tomcat运行在一个Docker,而MySQL运行在另外一个Docker,两者可以运行在同一个服务器,或多个服务器上。未来
阅读全文
摘要:前言 我们每天写完自动化用例后都会提交到 git 仓库,随着用例的增多,为了保证仓库代码的干净,当有用例新增的时候,我们希望只运行新增的未提交 git 仓库的用例。pytest-picked 插件可以实现只运行未提交到git仓库的代码。 安装 pip3 install pytest-picked 使
阅读全文
摘要:前言 通常我们认为每个测试用例都是相互独立的,因此需要保证测试结果不依赖于测试顺序,以不同的顺序运行测试用例,可以得到相同的结果。 pytest默认运行用例的顺序是按模块和用例命名的 ASCII 编码顺序执行的,这就意味着每次运行用例的顺序都是一样的。 app 测试里面有个 monkey 测试,随机
阅读全文
摘要:前言 平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完 当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间缩短一半,如果有10个小伙伴,那么执行时间就会变成十分之一,大大节省了测试时间 为了节省项目测试时间
阅读全文
摘要:前言 pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行 查看pytest.ini的配置选项 pytest -h 找到以下内容 [pytest] ini-options in the first pytest.ini|to
阅读全文
摘要:前言 pytest 使用命令行执行用例的时候,有些用例执行失败的时候,屏幕上会出现一大堆的报错内容,不方便快速查看是哪些用例失败。 --tb=style 参数可以设置报错的时候回溯打印内容,可以设置参数(auto/long/short/line/native/no) --tb=style pytes
阅读全文
摘要:前言 pytest 运行完用例之后会生成一个 .pytest_cache 的缓存文件夹,用于记录用例的ids和上一次失败的用例。 方便我们在运行用例的时候加上--lf 和 --ff 参数,快速运行上一次失败的用例。 --lf, --last-failed 只重新运行上次运行失败的用例(或如果没有失败
阅读全文
摘要:前言 allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面。 mac环境: 1.java == 1.8.0 2.python == 3.7.6 3.pytest == 6.2.
阅读全文
摘要:前言 断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了。什么是断言呢? 简单来讲就是实际结果和期望结果去对比,符合预期那就测试pass,不符合预期那就测试 failed 案例演示 def f(): return 3 def test_function(): a = f
阅读全文
摘要:前言 pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能 Skip和xfail: 处理那些不会成功的测试用例 你可以对那些在某些特定平台上不能运行的测试用例或者你预期会失败的测试用例做一个标记,这样pytest在提供测试报告时可以做对应的处理以保持整个测
阅读全文
摘要:前言 当某个接口中的一个字段,里面规定的范围为1-5,你5个数字都要单独写一条测试用例,就太麻烦了,这个时候可以使用pytest.mark.parametrize装饰器可以实现测试用例参数化。 官方示例 下面是一个典型的范例,检查特定的输入所期望的输出是否匹配: # test_expectation
阅读全文
摘要:前言 测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果. 有些同学在写用例的时候,用例写了先后顺序, 有先后顺序后,后面还会有新的问题(如:上个用例返回数据作为下个用例传参,等等一系列的问题。。。) github 上有个pytest-ordering插
阅读全文
摘要:前言 平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。 自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,或者针对某个模块的用例重复执行多次。 安装 pip3 install pytest-repeat 命
阅读全文
摘要:前言 在我们进行自动化测试的时候,用例往往是成百上千,执行的时间是几十分钟或者是小时级别。有时,我们在调试那么多用例的时候,不知道执行到什么程度了,而pytest-sugar插件能很好解决我们的痛点。 安装 pip3 install pytest-sugar 案例演示 def test_s1():
阅读全文
摘要:安装: pip3 install pytest-rerunfailures 重新运行所有失败用例 要重新运行所有测试失败的用例,请使用--reruns命令行选项,并指定要运行测试的最大次数: $ pytest --reruns 5 添加重新运行的延时 要在两次重试之间添加延迟时间,请使用--reru
阅读全文
摘要:fixture的优势 Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进: 命名方式灵活,不局限于 setup 和teardown 这几个命名 conftest.py 配置里可以实现数据共享,不需要 import 就能自动找到fixture scope
阅读全文
摘要:Pytest执行用例规则 Pytest在命令行中支持多种方式来运行和选择测试用例 1.对某个目录下所有的用例 pytest 2.对模块中进行测试 pytest test_mod.py 3.对文件夹进行测试 pytest testing 4.通过标记来进行测试 pytest -m slow 这种方式会
阅读全文
摘要:pytest介绍 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它具有如下特点: 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考 能够支持简单的单元测试和
阅读全文