Shin's Blog

Aims at Test Architect


  • 首页

  • 标签

  • 分类

  • 归档

  • 关于

使用Docker部署Jenkins环境

发表于 2018-05-23 | 分类于 持续集成

拉取镜像(以下二选一)

参考https://hub.docker.com/_/jenkins/,拉取Jenkins官方镜像

执行

1
docker pull jenkins

参考https://hub.docker.com/r/jenkinsci/blueocean/,拉取Jenkins官方提供的集成blueocean插件的镜像

执行

1
docker pull jenkinsci/blueocean

创建数据卷

创建一个数据卷,用于持久化Jenkins容器的数据到宿主机

1
docker volume create jenkins_data
阅读全文 »

Locust简单使用 - Python性能测试工具

发表于 2018-05-03 | 分类于 性能测试

简介

Locust 是一个开源压力测试工具.

与其他类似的压测工具相比, locust有几大优势:

  • 使用代码定义用户行为, 无需在GUI中使用鼠标点选, 或者将用户行为写成难以理解的XML文件;

  • 支持分布式执行测试代码, 因此能够模拟百万级别的用户量;

  • 使用协程执行请求, 较进程与线程而言, 在单机上支持更高的并发量;

  • 由于测试代码使用Python编写, 对于用Python编写接口测试代码的用户来说,可以只维护一套代码.

阅读全文 »

Python - deque双端队列

发表于 2018-05-02 | 分类于 Python

class collections.deque([iterable[, maxlen]])

Deque 双端队列介绍

初始化时,传入一个可迭代的数据,将返回一个从左到右的新的deque对象(可以理解为使用append()来遍历并添加数据中的元素到队列右端)。如果没有指定一个初始值,则生成一个长度为0的deque。

双端队列(Deque)是堆栈和队列的一般化(读音是“deck”,是“double-end queue”的缩写)。Deque是线程安全且高效的,从队列两端添加(append)或弹出(pop)元素的复杂度大约仅O(1)。

虽然list对象支持类似的操作,但是list的只是对固定长度的列表做优化,在执行改变数据元素位置和列表长度的操作(如pop(0)弹出第一个元素,insert(0,v)在某个位置插入元素)时,复杂度达到O(n)。

如果maxlen没有指定或为None,那么deque可以增长到任意长度。否则,deque最大长度将限制为maxlen。一旦一个有界长度的deque被填满,添加新元素时,相应数目的元素就会从相反的一端被丢弃。有界双端队列提供了类似于Unix中的tail过滤器的功能。它们对于跟踪事务和一些数据池也很有用,因为只有最近的活动才是程序关心的。

阅读全文 »

Tornado - 一个简单的单元测试实例

发表于 2018-03-16 | 分类于 单元测试

创建一个简单的 tornado 服务程序 server.py

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env python
# coding=utf-8
from tornado.web import RequestHandler, Application
import tornado.ioloop
class MainHandler(RequestHandler):
def get(self):
self.write("Hello, world")
application = Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
application.listen(8888)
tornado.ioloop.IOLoop.current().start()

启动后,浏览器访问 localhost:8888 可以看到输出 Hello, world

阅读全文 »

Python - 用协程并发执行测试用例

发表于 2018-02-02 | 分类于 Python

背景

最近在工作中,遇到需要执行大量测试用例的情况。大概2500个测试用例,每个用例有数条HTTP请求以及一些特殊处理,线性执行下来的结果是我花了2个半小时才执行完成!

为了解决这个问题,提高工作效率,实现测试用例并发执行是我所需要的。

几个想法

  1. 多线程执行测试用例

  2. 协程

可能遇到的问题:

多线程

值得说明的是,多线程执行测试用例是有前辈实现过的。具体实现过程没有看过,依稀记得他的实现过程会生成多份测试报告,然后用BeautifulSoup去解析、合并测试报告。

协程

  1. 使用协程,可能需要修改PyUnit源码
  2. 使用协程,可能需要修改当前测试用例为协程方法,改动可能很大
阅读全文 »

2017总结 - 从软件测试到测试开发

发表于 2018-01-20 | 分类于 长篇大论

到新公司快一个月了,总算是对新公司的产品、业务以及负责的工作摸索的差不多,有时间写一些这份迟到的年终总结。

软件测试一年


2017年,在同一家公司实习+毕业后的正式工作,从事了一年的软件测试工作。

进公司两三周,熟悉产品之后,我便迫不及待主动申请分担一些正式员工的工作。后来的几周边做功能测试边深入理解产品的过程,对于一份新工作还是令人充满激情的。

但是测试就是这么每天重复地人肉测功能?显然不是。

后来借一次开会的机会,我主动向主管申请自动化测试的工作。

2017年,“主动”着实让我成长不少。

阅读全文 »

tornado SSL 证书获取与服务器配置

发表于 2018-01-16 | 分类于 Python-web

服务端生成证书

进入 openssl 目录

$ cd /usr/lib/ssl

生成私钥

$ sudo openssl genrsa -des3 -out server.key 1024

生成 CSR 文件

$ sudo openssl req -new -key server.key -out server.csr -config openssl.cnf

阅读全文 »

Jenkins插件编译

发表于 2017-09-24 | 分类于 持续集成

环境说明

  • 系统: Deepin 15.04
  • Java环境: JDK 8
    Java环境的搭建与配置请百度。
  • 其他软件: Git

maven环境搭建

maven安装与配置

  • 下载maven: apache-maven 此处以我下载的apache-maven-3.5.0-bin.tar.gz为例;
  • 解压maven到/usr/local/目录
    1
    $ sudo tar -zxvf apache-maven-3.5.0-bin.tar.gz -C /usr/local/
  • 配置环境变量
    编辑_~/.profile_,追加如下内容:
    1
    2
    3
    4
    export M2_HOME=/usr/local/apache-maven-3.5.0
    export M2=$M2_HOME/bin
    export MAVEN_OPTS="-Xms128m -Xmx1024m"
    export PATH=$M2:$PATH
阅读全文 »
<i class="fa fa-angle-left"></i>123
严北

严北

28 日志
10 分类
34 标签
GitHub 掘金
© 2020 严北
0%