- 博客(201)
- 收藏
- 关注
原创 Docker学习(七):上传本地镜像到DockerHubRepositories
我们在本地pull DockerHub基础镜像后,生成容器,并在容器当中构建好自己需要的环境,此时利用commit创建一个新的镜像,此时我们可以将新的镜像上传到自己的DockerHub中进行保存,在以后需要使用的时候直接pull即可,这节讲解如何将本地镜像上传到自己的DockerHubRepositories。一、创建DockerHub账号创建DockerHub账号,百度即可,这里贴出链接...
2020-02-12 14:35:06
1177
原创 Docker学习(六):Dockerfile创建镜像
一、Dockerfile介绍Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile来快速创建自定义的镜像二、Dockerfile基础结构Dockerfile由一行行命令语句组成,并且支持以#开头的注释行一般而言,Dockerfile分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令# This dockerfile uses ubu...
2020-02-10 14:51:31
474
原创 Docker学习(五):搭建Docker私有仓库服务器
一、下载Docker注册服务器镜像docker pull registry:latest使用命令下载Docker注册服务器镜像文件查看images列表可以看到镜像已经下载成功二、运行注册服务器docker run -d -p <port>:<port> --name <container_name>-v <存储目录>:...
2020-02-08 20:54:46
757
原创 Docker学习(四):Docker高级命令
一、使用history查看镜像历史docker history <image_name>:<tag>IMAGE:镜像名称CREATED:创建时间CREATED BY:运行的命令SIZE:镜像大小COMMENT:message内容二、使用cp命令复制文件1、docker cp <container_name>:<需要复制...
2020-02-08 16:54:18
701
原创 Docker学习(三):Docker基本操作(连接容器、删除容器)
一、连接容器docker attach <container_name>/<container_id>通过container_name连接容器开启一个docker容器后通过ps进行查看,并通过attach <container_name>连接容器通过container_id连接容器开启一个docker容器后通过ps进行查看,并通过a...
2020-02-07 21:00:54
1293
原创 Docker学习(二):Docker基本操作(控制容器)
一、搜索镜像docker search 想要查询的镜像搜索镜像(Docker是通过DockerHub建立了一套生态系统,搜索镜像就是在DockerHub上进行)二、下载镜像docker pull <image_name>:<tag>下载镜像,其中image_name为镜像名称,tag为镜像的版本可以通过Docker查看到镜像下载的目录...
2020-02-07 17:36:59
534
原创 Docker学习(一):Docker介绍、特性与内部组件
一、Docker介绍Docker提供了一个可以运行你的应用程序的封套(envelope),或者说容器,会像一个可移植的容器引擎那样工作,它把应用程序及所有程序的依赖环境打包到一个虚拟容器中,这个虚拟容器可以运行在任何一种Linux服务器上,这大大提高了程序运行的灵活性和可移植性。Docker是一种容器技术。二、Docker特性1、文件系统隔离:每个进程容器运行在完全独立的根文件系统里,...
2020-02-06 14:32:15
738
转载 性能测试 - Locust TCP socket client(转载)
一、背景Locust 是性能测试工具,但是默认只支持http协议,就是默认只有http的client,需要其他协议的测试必须自己扩展对于的client,比如下面的TCP client。二、二次开发(类重写)1. Tcp socket client 类import timeimport random# from socket import socket, AF_INET, SO...
2020-01-16 15:17:57
2712
原创 Python实例初始化问题
一、概述最近在给一个项目写接口自动化框架,整体自动化测试思路如下:1、预先生成测试数据(记录对应的测试数据到文件当中)2、执行测试用例自动化执行(将测试过程中新增的数据信息记录到文件当中)3、测试数据销毁处理(根据文件当中记录的数据进行销毁处理)二、代码简述通过上面的测试思路,我利用的是多线程控制进行,代码如下# -*- coding: utf-8 -*-##---...
2020-01-09 11:13:18
885
原创 JS原型对象prototype以及原型链
一、堆栈堆&栈:两者都是存放临时数据的地方。栈是先进后出的,就像一个桶,后进去的先出来,它下面本来有的东西要等其他出来之后才能出来。堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对一般内存的访问没有区别。对于堆,我们可以随心所欲的进行增加变量和删除变量,不用遵循次序。栈区(stack) 由编译器自动分配释放 ,存放函数的参数值,局部变量...
2019-12-05 17:38:15
439
原创 Linux命令汇总链接(文件管理类)
1、cat:用于连接文件并打印到标准输出设备上,查看文件内容。2、chattr:用于改变文件属性,改变存放在ext2文件系统上的文件或目录属性。3、chgrp:用于变更文件或目录的所属群组。4、chmod:可以藉以控制文件如何被他人所调用,用户更改控制文件的权限。5、chown:指定文件的拥有者改为指定的用户或组。6、cksum:用于检查文件的CRC是否正确。确保文件从一个系统...
2019-11-24 22:24:01
369
原创 ES压测工具(四):esrally实例操作
一、针对ES版本压测数据对比针对ES2.4.6与ES5.6.0进行性能对比,前提是在同一压测数据集和压测方案条件下进行1、针对ES2.4.6版本进行压测(~/.rally/benchmarks/tracks/MyTracks/demo_track1为自定义压测,包括documents.json、index.json、track.json)esrally --distribution-...
2019-11-15 16:07:25
1163
原创 ES压测工具(三):esrally报告指标介绍
------------------------------------------------------ _______ __ _____ / ____(_)___ ____ _/ / / ___/_________ ________ / /_ / / __ \/ __ `/ / \__ \/ ___/ __ \/ ___/ _ \...
2019-11-14 22:09:10
2934
原创 ES压测工具(二):esrally进阶实战
一、esrally压测执行步骤回顾通过上图可以得知,esrally执行命令的步骤如下:先判断本地有没有ES6.0.0的实例,如果没有就去下载ES6.0.0的实例 判断本地有没有http_logs的track压测数据集,如果没有就去下载http_logs的track 执行append-no-conflicts的压测方案 生成压测结果二、自定义集群1、关键参数--pip...
2019-11-14 17:56:48
2728
原创 ES压测工具(一):esrally工具入门与实践
一、esrally工具介绍esrally是基于python的针对ES(Elasticsearch)实现压测的工具rally的定义是the macrobenchmarking framework for Elasticsearch,是基于用户视角的系统测试,不仅可以使用命令行,同时也可以将其集成到Python脚本代码当中。Macro-benchmarking是基于用户视角进行系统测试...
2019-11-13 13:33:23
2132
转载 ES介绍(转载)
一、ES是什么?Elasticsearch是高度可伸缩的开源全文搜索和分析引擎。它允许我们快速实时地存储、搜索、分析大数据。Elasticsearch使用Lucene作为内部引擎,但是在你使用它做全文搜索时,只需要使用统一开发好的API即可,而不需要了解其背后复杂的Lucene的运行原理。它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。不过...
2019-11-12 14:41:18
717
转载 ES查询-match VS match_phrase(转载)
我们以一个查询的示例开始,我们在student这个type中存储了一些学生的基本信息,我们分别使用match和match_phrase进行查询。首先,使用match进行检索,关键字是“He is”:GET /test/student/_search{ "query": { "match": { "description": "He is" } }}...
2019-11-12 11:36:06
408
原创 ES命令汇总
一、集群管理1、查看集群健康状态curl -X GET "localhost:9200/_cat/health?v"2、查看集群健康状态curl -X GET "localhost:9200/_cluster/health?pretty"3、查看集群中的节点curl -X GET "localhost:9200/_cat/nodes?v"4、列出当前所有的索引...
2019-11-12 11:30:30
1928
原创 Python多线程
一、进程与线程1、进程进程(有时称为重量级进程)则是一个执行中的程序。每个进程都拥有自己的地址空间、内存、数据栈以及其他用于跟踪执行的辅助数据。操作系统管理其上所有进程的执行,并为这些进程合理地分配时间。进程也可以通过派生(fork 或 spawn)新的进程来执行其他任务,不过因为每个新进程也都拥有自己的内存和数据栈等,所以只能采用进程间通信(IPC)的方式共享信息。2、线程线程(...
2019-11-04 16:02:14
446
原创 Python代码覆盖率工具——Coverage_API
一、Coverage_API介绍上节转载了Coverage命令行的相关知识,现在我们来说说Coverage相关api怎么使用吧,我个人比较喜欢用api,因为这样可以集成到框架当中,使用起来更加方便灵活。官方文档:https://coverage.readthedocs.io/en/latest/api.html请看下面的实例:#!encoding=utf-8import tim...
2019-10-29 18:13:24
2530
转载 Python代码覆盖率工具——Coverage命令行(转载)
一、Coverage命令行介绍安装coverage工具easy_install coverageorpip install coverage下面举例说明如何使用coverage工具生成指定测试用例模块的覆盖率报告cd testscoverage run test_ascheduler.py新增加一个.coverage文件,这个文件里面记录了test_asc...
2019-10-29 17:37:29
4611
1
原创 设计模式学习
一、设计模式如下常用的设计模式包含以下内容:简单工厂 工厂方法 抽象工厂 单例模式二、各类设计模式介绍1、简单工厂实例化对象的时候不再使用 new Object()形式,可以根据用户的选择条件来实例化相关的类。对于客户端来说,去除了具体的类的依赖。只需要给出具体实例的描述给工厂,工厂就会自动返回具体的实例对象。下面通过代码进行举例:#!encoding=utf...
2019-10-24 14:10:21
226
转载 Locust测试数据的处理 (转载)
通过归纳,发现其实也可以概括为三种类型。循环取数据,数据可重复使用:e.g. 模拟3用户并发请求网页,总共有100个URL地址,每个虚拟用户都会依次循环加载这100个URL地址;保证并发测试数据唯一性,不循环取数据:e.g. 模拟3用户并发注册账号,总共有90个账号,要求注册账号不重复,注册完毕后结束测试;保证并发测试数据唯一性,循环取数据:模拟3用户并发登录账号,总共有90个账号,要求并发...
2019-10-14 12:23:54
963
原创 基于Unittest下的BeautifulReport包的二次开发
一、BeautifulReport包BeautifulReport包是基于Python的Unittest进行二次开发的测试报告的包,它生成的测试报告要比原生测试报告要美观很多,下面给大家看一下BeautifulReport生成的测试报告:从整体来看,我们可以看到以下内容:测试报告的title、用例总数、通过数、失败数、跳过数、开始时间、执行时间、用例分布图等 每条用例的类名、te...
2019-10-11 14:17:45
1993
4
原创 pytest框架笔记(二十一) : 重复执行用例(pytest-repeat)
一、前言平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,或者针对某个模块的用例重复执行多次。二、pytest-repeatpytest-repeat是pytest的一个插件,用于重复执行单个用例,或多个测试用例,并指定重复次数使用--c...
2019-10-07 13:28:57
1114
原创 pytest框架笔记(二十) : 运行上次失败用例(--lf和--ff)
一、前言当用例特别多的时候,为了节省时间,第一次部分用例失败了,修复完之后,可以只测上次失败的用例二、pytest运行上次失败用例通过pytest -h,找到里面两个命令行参数:--lf和 --ff--lf,叫--last-failed,只重新运行上次运行失败的用例(或如果没有失败的话会全部跑) --ff,叫--failed-first,运行所有测试,但首先运行上次运行失败的测试...
2019-10-07 12:39:51
931
原创 pytest框架笔记(十九) : conftest.py作用范围
一、前言一个测试工程下是可以有多个conftest.py文件的,一般在工程根目录放一个conftest.py起到全局作用。在不同的测试子目录也可以放conftest.py,作用范围只在该层级以及以下目录生效二、conftest层级关系web_conf_py是项目工程名称│ conftest.py│ __init__.py│ ├─baidu│...
2019-10-06 22:54:56
1075
原创 pytest框架笔记(十五) : pytest分布式执行 (pytest-xdist)
前言平常我们手工测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟。如果一个测试人员执行需要1000分钟才能执行完,当项目非常紧急的时候,我们会用测试人力成本换取时间成本,这个时候多找个小伙伴把任务分成2部分,于是时间缩减一半。如果是十个人一起执行,1000个用例理论上只需100分钟就能完成,时间缩短到了1/10。大大节省的测试时间,为项目节省了时间成本。同样道理,当我们测试...
2019-10-06 22:45:37
646
原创 pytest框架笔记(十六) : fixture作为参数传入以及error和failed区别
一、前言fixture是pytest的核心功能,也是亮点功能,熟悉掌握fixture的使用方法,pytest用起来才会得心应手二、fixture简介fixture的目的是提供一个固定基线,在该基线上测试可以可靠地和重复地执行。fixture提供了区别于传统单元测试(setup/teardown):有独立的命名,并通过声明它们从测试函数、模块、类或整个项目中的使用来激活。 按模块化...
2019-10-06 22:45:26
1023
原创 pytest框架笔记(十八) : 使用多个fixture和fixture互相调用
一、前言一个用例是可以传多个fixture参数的,如果fixture之间有依赖关系,也可以互相调用二、使用多个fixture如果用例需要用到多个fixture的返回数据,fixture也可以return一个元组、list或字典,然后从里面取出对应数据#!encoding=utf-8import pytest#fixture@pytest.fixture()def use...
2019-10-06 22:13:34
788
原创 pytest框架笔记(十七) : fixture的作用范围(scope)
一、前言fixture里面有个scope参数可以控制fixture的作用范围:session > module > class > function二、fixture作用范围function:每一个函数或方法都会调用 class:每一个类调用一次,一个类可以有多个方法 module:每一个.py文件调用一次,该文件内又有多个function和class se...
2019-10-06 16:47:06
959
原创 pytest框架笔记(十四) : 配置文件pytest.ini
一、前言pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行二、ini配置文件pytest里面有些文件是非test文件pytest.ini : pytest的主配置文件,可以改变pytest的默认行为 conftest.py : 测试用例的一些fixture配置集中管理 _init_.py : 识别该文...
2019-09-28 21:52:21
2176
1
原创 pytest框架笔记(十三) : Pytest+Allure定制报告
一、前言Allure框架是一个灵活的轻量级多语言测试报告工具,它不仅以web的方式展示了简介的测试结果,而且允许参与开发过程的每个人从日常执行的测试中最大限度的提取有用信息从dev/qa的角度来看,Allure报告简化了常见缺陷的统计:失败的测试可以分为bug和被中断的测试,还可以配置日志、步骤、fixture、附件、计时、执行历史以及与TMS和BUG管理系统集成,所以,通过以上配置,所有负...
2019-09-23 23:08:57
3496
原创 pytest框架笔记(十二) : fixture之autouser=True
一、前言平常写自动化用例会写一些前置的fixture操作,用例需要用到就直接传该函数的参数名称就行了,当用例很多的时候,每次都传这个参数,会比较麻烦。fixtrue里面有个参数autouse,默认是False没有开启的,可以设置为True开启自动使用fixtrue功能,这样用例就不用每次都去传参了调用fixtrue有三种方法:函数或类里面方法直接传fixtrue的函数参数名称 使...
2019-09-23 16:51:46
567
原创 pytest框架笔记(十一) : 标记失败xfail
一、前言当用例a失败的时候,如果用例b和用例c都是依赖于第一个用例的结果,那可以直接跳过用例b和c用例,直接给他标记失败xfail用到的场景,登录是第一个用例,登录之后的操作b是第二个用例,登录之后操作c是第三个用例,很明显三个用例都会走到登录如果登录都失败了,那后面2个用例就没测试的必要了,直接跳过,并且标记为失败用例,这样可以节省用例时间二、用例设计1、pytest里面用x...
2019-09-23 15:56:19
629
原创 pytest框架笔记(十) : 使用自定义标记mark
一、前言pytest可以支持自定义标记,自定义标记可以把一个web项目划分为多个模块,然后指定模块名称执行。app自动化的时候,如果想android和ios公用一套代码时,也可以使用标记功能,标明哪些是ios用例,哪些是android用例,运行代码时指定mark名称运行。二、mark标记1、以下用例,标记test_send_http()为webtestimport pytest...
2019-09-23 15:21:54
1173
1
原创 pytest框架笔记(九) : 函数传参和fixture传参数request
一、前言为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数。比如登录操作,大部分的用例都会先登录,那就需要把这个登录单独抽出来写个函数,其他用例全部的调用这个登录函数就行。但是登录的账号不能写死,有时候要用账号1登录、执行用例1,用账号2登录执行用例2,所以需要对函数传参二、函数传参把登录单独成立,写一个函数,传2个参数user和psw,写用例的时候...
2019-09-23 14:21:45
2172
原创 pytest框架笔记(八) : allure2生成html测试报告
一、前言allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面二、环境配置1、安装配置pip3 install pytestpip3 install allure-pytest2、安装allure2下载地址:https://dl.bintray.co...
2019-09-23 11:05:32
775
原创 pytest框架笔记(七) : skip跳过用例
pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能skip意味着只有在满足某些条件时才希望测试通过,否则pytest应该跳过运行测试。常见示例是在非windows平台上跳过仅限windows的测试或跳过依赖于当前不可用的外部资源(例如数据库)。xfail意味着您希望测试由于某种原因而失败。一个常见的例子是对功能的测试尚未实施。或尚未修复的错误。当测...
2019-09-20 17:31:05
1365
1
原创 pytest框架笔记(六) : assert断言
断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了,什么是断言呢?简单来讲就是实际结果和期望结果去对比,符合预期那就测试pass,不符合预期那就测试failed一、assertpytest允许您使用标准python断言来验证python测试中的期望和值。#!encoding=utf-8def f(): return 3def test...
2019-09-19 22:32:54
1210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅