- 博客(36)
- 收藏
- 关注
原创 bwapp闯关(一)SQL injection<low>
前言本文章记录bwapp的SQL injection模块,web安全测试SQL注入环境准备docker部署bwapp火狐浏览器安装hackbar插件,登录进入bwapp页面,选择bug类型<SQL injection(GET/Search)>,并设置安全等级为low按照字段搜索可以看到查询结果信息列表如下单引号注入检测根据搜索查询业务我们可以猜想查询用户信息列表的SQL大致为:select XX from database where title = “id”,此时titl
2022-05-17 19:25:04
452
原创 nginx使用goaccesss实时监控access.log日志
安装goaccess安装goaccess可以使用源码编译安装也可以使用linux系统命令进行安装,本文示例为ubuntu系统使用apt-get命令进行安装apt-get install goaccess生成日志html页面生成日志页面命令具体详情可看官方文档https://goaccess.io/get-started,命令可以定义日志输出格式、是否实时采集以及生成...
2022-04-21 21:19:42
3231
原创 性能测试调优之nginx<静态资源压缩与流量限制>
在性能测试调优过程中以有限的资源尽可能的最大化收益才是目标,本文简单记录nginx的两个配置小技巧配置gzip压缩在访问web网页时,静态资源过大会大大降低传输速度。我们可以通过nginx配置静态资源压缩的方式来降低网络带宽消耗,下图是没有进行静态资源压缩的抓包信息,可以看到index.html页面为26kB我们通过修改nginx配置添加开启gzip压缩并reload重新加载配置可以在response_headers中看到对静态资源使用了gzip进行压缩,压缩后的index.html只有8kB
2022-04-20 22:40:54
2499
原创 docker环境下orientdb的数据库导入与导出
前言orientdb 是一个开源的多模型 NoSQL 数据库,本文记录docker环境下部署的orientdb实现数据库的导出与导入进入orientdb由于是docker环境部署,我们需要先进入容器内部docker exec -it orientdb bash在进行数据库操作前我们需要进入控制台模式运行console.sh,默认路劲 /orientdb/bin/console.sh连接数据库CONNECT <database-url> <user> <pas
2022-01-20 17:10:42
1415
1
原创 burpsuite小技巧,实现Fuzz测试
前言Fuzz testing是生成大量数据并且对系统产生大量异常请求,通过大量恶意请求查找漏洞。在这个过程中我们可以依赖于部分工具来实现参数化,本文以burpsuite为工具以文件上传为例拦截请求启动burpsuite并且开启代理后请求一次文件上传,进入BurpSuite → Proxy →HTTP history,右键点击刚才的请求选择Send to Intruder修改fuzz测试值进入Intruder→Positions,可以看到请求参数中有"§"符号包裹的内容,被包裹的内容就是需要被参数
2021-12-29 10:27:35
5542
1
原创 ubantu设置root密码
前言ubantu系统安装成功后未注册root用户密码,可以自行设置root密码sudo passwd root使用此命令后输入设置root密码,再次输入确认新密码
2021-12-02 10:28:15
120
原创 性能测试,CPU使用率CPU负载率理解
前言在做性能测试过程中,我们常说需要关注的主要两个性能指标方向为时间性能和空间性能。服务器CPU使用率以及平均负载率是其中需要重点监控的节点之一,此处用通俗的例子来说明CPU使用率以及CPU平均负载率CPU使用率在服务器使用top命令,我们可以打开实时服务器资源用情况如下图所示。服务器CPU使用率我们可以看到此时CPU使用率占用百分比,图中为12.1%。对于这个CPU使用率可能部分对于计算机硬件原理不了解的同学来说会往空间方面去想象使用率(类似于内存使用率)而进入误区。CPU的使用率是以时间
2021-11-29 15:26:50
3189
原创 性能测试中间件Nginx缓存配置
缓存配置在解决高并发性能问题时,缓存是其中的一种手段。本文简单介绍nginx缓存的配置方法,详细可以参考nginx官方文档我的nginx配置如下# 设置缓存内容proxy_cache_path /data/nginx/cache/test keys_zone=test:10m max_size=10g;upstream test_server { server 172.18.0.71:8080;}server { listen 80; # 使用缓存
2021-10-25 11:52:53
368
原创 性能测试中间件Nginx负载均衡
Nginx简介nginx是一款开源的高性能开源代理服务器,常用于http代理、反向代理、负载均衡以及web缓存。从应用方式和场景可以看出nginx常常作为服务端系统架构最为重要的一个中间件之一,同样nginx也可能会存在性能瓶颈导致服务端整体性能问题Nginx负载均衡策略nginx作为中间件主要作用就是负责对请求进行分发从而起到负载均衡作用,nginx自带四种负载均衡策略分别是:轮询 、weight、ip_hash、least_conn,以及两种第三方策略fair和url_hash。nginx默认的负
2021-10-22 14:54:35
1660
原创 Linux kernel Cgroups浅析
引言本文为Linux Cgroups学习笔记,简单记录cgroups中的部分原理与操作方式,以便于更能深入的了解容器化技术Linux kernel CgroupsCgroups (Control Groups)是 Linux 下用于对一个或一组进程进行资源控制和监控的机制;可以对诸如 CPU 使用时间、内存、磁盘 I/O 等进程所需的资源进行限制;不同资源的具体管理工作由相应的 Cgroup 子系统(Subsystem)来实现 ;针对不同类型的资源限制,只要将限制策略在不同的的子系统上进行关联
2021-10-09 18:05:08
370
原创 Linux kernel namespace浅析
引言在学习docker过程中进一步深度学习容器隔离技术,在docker之前Linux kernel提供了自带的容器技术namespace,本文简单介绍namespace的一些原理Linux kernel namespaceNamespace是Linux kernel提供的资源隔离方案(Linux自带的容器技术)系统可以为进程分配不同的namespace,并保证不同的namespace资源独立分配、不同的namespace下的进程互不干扰Linuxkernel提供了Pid,Network,Ipc,U
2021-10-09 12:17:39
570
原创 linux环境nginx安装并设置不同的项目读取不同配置文件
前言再同一个服务器环境下,可能部署多套项目各个项目需要不同的配置以及日志路劲等,此时需要在一个nginx情况下读取多个配置文件依赖安装安装gcc-c++编译器yum install gcc-c++yum install -y openssl openssl-devel安装pcre包yum install -y pcre pcre-devel安装zlib包yum install -y zlib zlib-develnginx安装创建文件夹并下载nginx安装包mkdir /usr
2021-09-29 10:37:06
383
原创 基于pytest+allure的自动化测试(五)测试用例编写与执行
前言根据之前的requests请求、config配置文件读取、yaml测试数据读取、日志输出、断言,我们基本已经构成一个初步的自动化测试框架。本文简单讲解pytest+allure编写测试用例allure 报告标记 @allure.feature # 用于定义被测试的功能,被测产品的需求点 @allure.story # 用于定义被测功能的用户场景,即子功能点 @allure.severity #用于定义用例优先级 @allure.issue #用于定义问题表识,关联标识
2021-08-09 15:51:31
629
原创 基于pytest+allure的自动化测试(四)requests、yaml、断言封装
前言为了减少自动化过程中的冗余代码,我们把一些常用的类、方法封装成自己想要的方法、类,本文简单介绍python的requests封装get、post,根据需要可配合加密、解密、日志等组件,本文把响应时间和响应文本结合返回封装requests# -*- coding: utf-8 -*- # @CreateTime : 2020/8/6 22:41 # @Author : tester_ye# @File : Requests.pyimport requestsfrom Data impor
2021-08-09 15:39:07
2156
原创 基于pytest+allure的自动化测试(三)配置文件ConfigParser封装
前言为了减少自动化过程中的冗余代码,我们把一些常用的类、方法封装成自己想要的方法、类,本文简单介绍常配置文件读写的封装代码,封装python的ConfigParser读取配置文件*.iniConfigParser封装# -*- coding: utf-8 -*- # @CreateTime : 2020/8/6 19:37 # @Author : tester_ye# @File : MyConfig.pyfrom configparser import ConfigParserfrom
2021-08-09 15:19:25
338
原创 基于pytest+allure的自动化测试(二)日志封装
前言为了减少自动化过程中的冗余代码,我们把一些常用的类、方法封装成自己想要的方法、类,本文简单介绍常用类的封装代码日志封装# -*- coding: utf-8 -*- # @CreateTime : 2020/8/6 19:38 # @Author : tester_ye# @File : Log.pyimport loggingimport osimport time# 获取当前脚本文件父类的绝对路径(项目主目录)path = os.path.dirname(os.path.
2021-08-09 15:11:36
1613
4
原创 Linux 下载maven3.6
maven3.6百度网盘下载链接:https://pan.baidu.com/s/1f4RsAlWprt86YXFQ3qxYag提取码:rtv3解压缩:tar -zxvf apache-maven-3.6.3-bin.tar.gz
2021-08-06 18:11:47
345
原创 windows allure下载安装
前言allure测试报告框架,用来生成自动化测试报告allure2.8下载百度网盘链接:https://pan.baidu.com/s/1Z3m853xkza14I_b0coO7GQ提取码:fznm解压后配置环境变量,DOS窗口输入命令校验:allure --version
2021-08-06 18:06:23
676
原创 基于pytest+allure的自动化测试(一)框架结构介绍
前言本文主要介绍基于python的pytest测试框架和requests库,来进行接口自动化测试框架搭建。测试报告使用第三方测试框架allure来生成测试报告,本文只介绍测试框架最基本常用的组件和项目结构搭建,有需要更多功能只需模块式添加即可环境准备编程语言:python3编辑器:编辑器可选用pycharm、vscode、eclipse等库 pytest、requests、allure-pytest (pytest-allure-adaptor已停止更新,python3开始改用allure-py
2021-08-06 17:58:26
540
原创 centos perf+Flame Graph生成火焰图踩坑
前言Perf是一个基于Linux 2.6 +系统的分析工具,它抽象了在Linux中性能度量中CPU的硬件差异 ,提供一个简单的命令行界面。 Perf基于最新版本Linux内核 的perf_events 接口。本文主要记录在perf+Flame Graph生成火焰图中遇到的坑,perf的使用不多做介绍安装perfyum install perfFlame Graph安装通过git拉取即可,无需解压、安装操作git clone https://github.com/brendangregg/Fl
2021-08-06 09:47:17
4328
1
原创 性能测试(一)服务器整体资源监控
前言在服务端性能测试中,需要对整个系统进行监控。本文简单介绍的是服务器整体资源监控方法以及环境搭建配置为了减少对服务器环境的侵入性,所有组件均采用docker容器化部署node-exporter 用于机器系统数据收集,数据源Prometheus 用于时序数据的存储和查询Grafana 开源可视化前端框架Docker环境服务器centOS环境安装docker pull prom/node-exporterdocker pull prom/prometheusdocker pull gr
2021-08-03 15:43:25
688
原创 jenkins持续集成(四),pipeline流水线
前言根据之前所写从代码拉取、打包、扫描、发布、测试形成一个完整的流程,我们需要把整个过程串联在一个jenkins任务中。Jenkins提供了pipeline流水线任务。本文结合之前内容简单介绍jenkins的流水线,部分地方省略创建pipeline任务因为我们的项目是多分支项目所以依然使用branch参数化流水线脚本,可使用快速生成的方式,点击“流水线语法”进入脚本生成页面,如果你有兴趣可以自行了解下流水线语法。流水线相对简单此处不多做介绍完整流水线脚本:pipeline { ag
2021-08-03 14:06:12
1103
原创 jenkins持续集成(三)pytest+allure部署
前言在devops中作为软件质量最关键的测试环节,在快速发布更新后需要对系统进行回归测试,本文介绍Jenkins集成pytest+allure自动化测试任务创建测试任务自动化测试报告框架为allure,此处需要jenkins预先安装allure相关插件构建处使用pytest命令执行测试,并输出指定路劲测试报告构建后操作选择allure report path为相对项目主目录路劲的xml报告执行测试未使用Jenkins来调用钉钉,改用shell命令调用py脚本(原因:测试需要发送测试执行详情)
2021-08-03 13:36:27
150
原创 jenkins持续集成(二),sonarqube代码静态检查
前言在devops中,代码质量管理环节需要采用一定的静态测试法,本文使用sonarqube对项目代码进行静态检查,sonarqube可以选择多种语言插件安装sonarqube安装下载解压sonarqubecd /usr/localwget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.6.zipunzip sonarqube-7.6.zipmv sonarqube-7.6 /usr/local/创建s
2021-08-03 13:27:57
1621
原创 jenkins持续集成(一)多分支快速部署
前言为了应对多环境、多服务、多分支情况下的服务部署以及自动化接口测试,选用Jenkins+maven+git来进行一键式指定分支打包发布到指定服务器,并接入钉钉机器人实时更新动态到钉钉群在配置jenkins过程中出现部分组件找不到,没地方配置的情况大概率是缺少插件,前往Jenkins插件管理中下载安装对应插件本文以Java项目以及vue前端项目为例,不同语言、框架的项目会有所不同做出对应调整即可,本文为简略版部分步骤可能省略Maven安装此处采用离线安装百度网盘链接:https://pan
2021-08-03 11:59:09
915
原创 测试基础理论之测试用例设计流程
引言作为一个测试人员,编写测试用例是必备的技能之一也是测试工作展开的基础和依据。测试用例定义了测试工作中的行为和准则,那么测试用例的质量对于软件测试的意义十分重要,每个人每个公司对于测试用例的要求有各自的特点并没有一个具体的准则,为此根据我个人的工作经验和理解写下用例设计的核心概要(个人见解,仅供参考)制定测试点测试介入工作首先需要根据产品需求拆分测试点,假如测试用例是一棵树的树叶那么测试点就是树的枝干,测试用例是以测试点为基础框架进一步细化测试步骤的产物。对于一个系统再分析测试点的时候需要以软件质
2020-06-19 18:54:45
960
原创 linux环境下python发送SMTP邮件报错
邮件发送代码 try: smtp = smtplib.SMTP() smtp.connect(smtpserver) smtp.login(username,password) smtp.sendmail(sender,receiver,message.as_string()) except smtplib.SMTPException as e: self.
2020-05-20 16:15:19
1367
原创 python读取指定文件夹内所有文件
起因在写python发送测试报告的邮件时,需要从多个json文件读取数据解决办法python os模块下的walk()函数可对指定目录下的文件夹/文件进行遍历result_list = [] for root, dirs, files in os.walk(path): for name in files: watch_file_path = os.path.join(root, name) with open(watch_file_
2020-05-18 10:53:54
408
原创 python连接MySQL数据库更新数据库操作
起因测试过程中对数据库的操作以查询为主,我个人不建议直接对数据库数据进行更改,尽量通过接口操作但有时候需要手动对数据库数据数据进行insert、update、delete等操作。于是做了个简单的封装代码构成上一篇写了MySQL查询的封装操作,共同的一些对象创建不再重复编写 def update_sql(self,sql): ''' 数据库更新,删除,插入 :param sql: sql语句 :return: '''
2020-05-14 10:51:05
454
原创 python连接MySQL数据库查询
起因在使用python写某些测试工具类的时候需要从数据库读取已有数据作为测试参数python的pymysq提供了对MySQL数据库连接以及操作的方法,为了方便使用把读取MySQL方法封装一下代码构成部分使用已有的读取config配置文件的方法读取MySQL配置信息使用已有的日志打印方法打印错误日志信息 #获取文件读取类对象,获取日志打印类对象 def __init__(self): self.config = Config.Config() self.
2020-05-09 12:35:47
247
原创 python获取字典中value最大值的key
起因:今天在用python写一个计价折合工具类时,需要用到同一商品在各个交易区的价格并获取最大值。首先把所有价格计算出来存入字典price,需要从字典中取最高价格解决办法:python的max()函数解决获取字典中value最大的值对应的key : max(price,key=price.get)获取字典中value最大值: price[max(price,key=price.ge...
2020-05-07 15:55:30
5132
原创 软件测试流程及文档产物
软件测试伴随软件的整个生命周期,从立项到开发再到上线/迭代更新以及最后的消亡软件生命周期软件从前期的规划到开发软件生命周期大概为 市场调查、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,也有将以上阶段的活动组合在内的迭代阶段,即迭代作为生命周期的阶段。软件测试流程大概为:需求分析阶段,需求评审(RPD、产品原型图)根据需求提取测试点,以思维导图...
2020-05-06 14:45:22
558
原创 测试理论笔记:测试分类
软件测试的分类软件测试从不同角度来看会有多种分类,各分类之间并非独立存在而是相互关联。对于分类我们大致分类为以下几类(不限于此):是否关注程序内部运行情况分为白盒测试、黑盒测试、灰盒测试是否运行软件分为静态测试、动态测试按流程阶段分为单元测试、集成测试、系统测试、验收测试按测试方向对象分为业务功能测试、UI测试、性能测试、安全测试等是否关注程序内部黑盒测试:在测试过程中把程序看...
2020-04-23 18:43:43
418
原创 软件测试理论笔记:软件测试的质量六属性
软件测试的目标首先我们软件测试的目标是:验证软件产品是否满足用户的需求软件质量属性那么如何验证我们的软件产品是否符合用户需求,这需要从多个方面维度入手。通常我们把一个软件产品需要满足的质量标准划分为六大属性分别为:功能性、易用性、可靠性、效率性、可维护性、可移植性。功能性软件产品的功能性是指软件产品在指定的环境下使用时满足需求所规定的功能,其中包括不限于:适合性:软件为特定的任务和...
2020-04-22 16:43:57
1833
原创 基于python的unittest单元测试框架+selenium+HtmlTestRunner,UI自动化笔记
软件自动化测试概述自动化测试是为了在软件测试的过程中节省人力、时间等资源以机器执行测试代替人工测试过程而进行的测试自动化测试只能用来做简单逻辑的业务测试自动化测试主要目的是为了验证已测功能的正确性自动化测试适用情况测试任务明确、需求不会频繁变动软件系统稳定,变动少软件需要在多平台、环境下运行执行相同的测试用例项目周期长,进度压力不大、测试时间相对充裕等web自动化测试环境...
2020-04-16 11:35:08
616
原创 python发送邮件异常报错 535,b'Error: authentication failed'
异常表象今天在写python发送163邮件时,出现smtplib.SMTPException异常错误 535,b’Error: authentication failed’,检查代码和数据并未发现异常代码如下:运行结果解决办法调用163邮箱服务来发送邮件需要登录163邮箱进入设置里面的 POP3/SMTP/IMAP服务设置项开启POP3/SMTP服务发送安全验证码获取授权码,替换...
2020-04-16 10:52:40
2699
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人