自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(217)
  • 收藏
  • 关注

原创 性能测试阶段7之实战1——http协议

jmeter性能压测实战

2022-10-23 17:47:03 975 3

原创 性能测试阶段6之行业流行性能监控工具

性能测试阶段6之行业流行性能监控及剖析工具Linux自带命令:Vmstat,Top机器监控工具: Nmon物理机监控:Collectd + InfluxDB + GrafanaDocker +Mysql+ Redis一体化监控∶Prometheus + Grafana(node exporter, mysqld_exporter,redis_exporter,自定义exporter,全家桶)全链路Tracing 监控:Zipkin系统级分析/调试工具...

2022-10-19 23:44:30 1168 1

原创 软件测试常见笔试题总结

mysq、linux常见笔试题

2022-10-09 18:04:34 4282

原创 app端专项测试

01 专项测试概述1.专项测试(用户维度)崩溃(Crash,弱网)卡顿(掉帧、GC、CPU)响应慢(启动时间、交互时间、H5加载)发热(cpu、内存、网络、io、gps等硬件使用)掉电快(硬件占用)兼容性问题(平台、手机品牌/型号、回归)2.专项测试(技术维度)崩溃自动遍历、monkey测试、横竖屏切换、快速进退卡顿(掉帧、gc、cpu)卡顿测试、内存泄漏测试、 method profile响应慢(启动时间、交互响应、H5加载)冷热启动、界面切换、h5性能测试

2022-10-05 12:41:16 2138

原创 web自动化jenkins持续集成_centos版

01 python环境1.1 完全卸载原有python3#卸载python3rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps#删除所有残余文件whereis python3 |xargs rm -frv#查看现有安装的python,验证是否删除干净whereis python 1.1 安装依赖yum -y install zlib-devel bzip2-devel openssl-devel ncurses-deve

2022-07-11 23:43:11 801

原创 airtest自动化测试

airtest自动化测试框架

2022-06-05 19:05:43 989 1

原创 CICD之docker(linux版)

centos7安装docker1. 安装dockerdocker官网centos下载链接:https://docs.docker.com/engine/install/centos/1. 如原来安装有docker,先使用以下命令进行删除sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \

2022-05-26 12:31:41 827 1

原创 接口测试之主流协议测试合集(python版)

01 TCP/IP四层模型&OSI七层模型1. OSI,TCP/IP,五层协议的体系结构,以及各层协议OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。每层作用物理层:传输二进制比特流数据链路层:负责将上层数据封装成帧网络层:负责路由寻址和广播 ;广播:发送消息和接收消息*传输层:负责建立一个可靠的端到端的连接;端到

2022-05-09 22:51:21 997

原创 unittest和pytest测试框架基础

01 单元测试1. 什么是单元测试?单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。2. 单元测试什么时候执行?开发阶段,单元测试介入越早后续集成测试遇到的问题越少3. 单元测试由谁负责?由程序员负责4. python的主要单元测试框架?Unittest:python内置的标准类库;Pytest:丰富、灵活的测试框架,语法简单,可以结合allure生成一个炫酷的

2022-04-17 16:32:36 1545

原创 app自动化之allure报告生成

1. allure-pytest官网下载allure官网链接:https://github.com/allure-framework/allure2/releases/tag/2.17.2文档: https:/ /docs.qameta.io/allure/#2. allure配置解压->进入bin目录->运行allure.bat,把bin目录加入PATH环境变量检查allure安装是否成功打开cmd命令窗口输入allure 或allure --version

2022-01-22 00:42:56 1376

原创 app自动化之控件和元素操作

app自动化之控件和元素操作03 app自动化之控件和元素操作3.1 启动参数Capabilities(Android)3.2 三种等待方式3.2.1强制等待:3.2.2 全局隐式等待(在服务端等待)3.2.3显式等待(在客户端等待)1. 使用说明2. WebDriverWait用法3. WebDriverWait的`until()`和`until_not()`方法:3.3 android、ios基础知识3.3.1 android3.3.2 ios3.4 app元素定位方式1. id定位2. accessi

2022-01-12 23:00:11 2339

原创 app自动化之前置处理—欢迎页面划屏

app自动化之前置处理—欢迎页划屏(以进入平安证券app以例)import timefrom logger import loggerfrom appium import webdriverfrom appium.webdriver.webdriver import WebDriverclass App: def __init__(self, driver: WebDriver = None): self._driver = driver def star

2022-01-11 01:20:44 2006

原创 app自动化之启动参数获取、元素定位工具和元素定位方式

app自动化之启动参数获取、元素定位工具和元素定位方式1. 启动参数获取1.1 下载qq1.2 获取启动参数1.3 整理启动参数2元素定位工具和定位方式2.1 第一种: android SDK自带工具:uiAutormatorViewer2.2 第二种:python版uiAutomator2中的weditor2.3 第三种:appium自身定位工具appium inspector2.4 app自动化常用的元素定位方式3. 实际案例(以qq登录为例)1. 启动参数获取1.1 下载qq官网:https:/

2022-01-09 20:17:08 3955 3

原创 windows下Python版app自动化测试环境配置更新版

关于本篇安装所需软件工具本人已全部打包上传百度网盘,如有需要可直接下载链接:https://pan.baidu.com/s/1oq8mB7J-V4wNqiMsijpZuQ**提取码:1234windows下Python版app自动化测试环境配置更新版1. 安装jdk1.1 安装jdk1.2安装jre1.3配置环境变量1.4 校验是否全部配置成功2. 安装node.js(appium server安装方式为desktop方式不需安装nodejs)2.1 选择安装路径2.2 打开 cmd 窗口,输入 no

2022-01-08 23:54:00 1548 1

原创 python数据读写操作之csv转excel

python数据读取之csv转excel从数据库读取处理后的数据格式写入csv文件的数据格式从csv转为xls的数据格式import osimport timefrom config.settings import Settingsfrom middleware.db_handler import DBHandlerfrom decimal import Decimalimport csvimport pandas as pdclass FileOperate(): d

2021-12-31 00:44:42 4686

原创 Decimal().quantize() ——十进制定点和浮点运算

1. decimal.Decimal(value=‘0’, context=None)value 可以是整数,字符串,元组,float ,或另一个 Decimal 对象。 如果没有给出 value,则返回 Decimal('0')。如果 value 是一个字符串,它应该在前导和尾随空格字符以及下划线被删除之后符合十进制如果 value 是一个 tuple ,它应该有三个组件,一个符号( 0 表示正数或 1 表示负数),一个数字的 tuple 和整数指数。 例如, Decimal((0, (1, 4

2021-10-07 22:01:31 3438

原创 性能测试阶段4之jmeter组件和基本使用

day01 jmeter基础1.1jmeter环境配置及安装1.1.1jmeter安装及启动安装jdk1.8再官网下载jmeter的zip文件https://jmeter.apache.org/解压zip文件,将解压后的文件放在一个没有中文的路径下jmeter启动进入jmeter路径 的bin目录并且打开在bin目录下找到jmeter.bat文件,双击在windows下启动jmeterjmeter/bin jmeter.bat在liunx下启动jmeterjm

2021-09-20 12:37:27 650

原创 性能测试阶段3之docker配置及jmeter安装

性能测试阶段3之docker配置及jmeter安装性能测试阶段3之docker配置及jmeter安装01 安装镜像02docker 常用命令03 容器安装1. 安装镜像加速器[https://www.runoob.com/docker/docker-mirror-acceleration.html](https://www.runoob.com/docker/docker-mirror-acceleration.html)2. 下载容器3. 启动和进入容器4. 配置mysql数据库服务04 jmeter安装

2021-09-06 00:49:50 2305

原创 性能测试阶段2之静态ip配置

性能测试之设置静态ip1. 用户切换和虚拟机网络设置2. 安装网络工具apt-get install net-tools3. 修改配置文件1. vim /etc/network/interfaces注释掉:#auto lo#iface lo inet loopback添加auto 网卡名称iface ens33 inet staticaddress ipnetmask 255.255.255.0gateway 本机网关dns-nameserver 8.8.8.8

2021-09-05 01:01:58 197

原创 性能测试阶段1之性能测试理论

软件测试之性能测试基础01 基本概念02核心原理03应用领域04测试思路4.1 测什么?4.2 怎么测4.3 测试结果是否通过05性能指标5.1 前端性能指标5.2 服务端性能指标06性能视角6.1 用户视角6.2 开发视角6.3 运维视角07测试类型01 基本概念1. 基本目的:测试系统性能是否达标(性能:系统处理能和运行能力)找到性能瓶颈2. 基本方法: 基准 负载 压力02核心原理基本原理:基于协议通过多线程方式模拟用户并发,在不同的场景下施压服务器1. 基于协议(http tc

2021-09-04 22:21:13 296

原创 软件测试工程师之linux日志查看常用命令

查看日志常用命令1. 实时查看动态日志:tail -f 日志名称.log2. 查看错误日志:grep -C50 ERROR *.log3. 按关键字查询cat 日志名称.log |grep “关键字”4.查看日志显示条数其他日志常用命令tail: -n 是显示行号;相当于nl命令;例子如下: tail -100f test.log 实时监控100行日志 tail -n 10 test.log 查询日志尾部最后10

2021-09-04 10:20:28 2278

原创 python之数据结构与算法分析

python之数据结构与算法分析01 数据结构与算法入门1.1顺序表1.2 链表1.2.1 单向链表1.2.2 双向链表1.2.3 单向循环链表02 栈与队列2.1 栈2.2 队列2.3 双端队列03 排序与搜索3.1 排序python实现排序3.2 搜索3.2.1顺序搜索3.2.2.二分查找3.2.3哈希散列1.映射支持的操作2. python实现映射04 树与算法4.1树的定义4.2 树的术语4.3树的种类4.4 树的存储方式4.5 树的常见应用4.6 二叉树4.6.1 二叉树性质4.6.2 二叉树支持

2021-04-26 00:19:27 1689 2

原创 python之key名称相同赋不同value值

# 对相同的key如何设置不同的value值import randomjson = { # "tags":[ # {"tag":"A"}, # {"tag":"BB"}, # {"tag":"ccc"} # ] "tags":[ ]}print("type:%s%s" %(type(json),json))if "tags" in json: if len(json["tags"]):

2021-04-22 00:44:54 750

原创 python列表的字符串形式快速转列表形式的4种方式

1. python列表的字符串形式转列表形式方式1:python内置函数eval()方式2:literal_eval方式3:json.loads()方式4:str.strip("[]").split(",")2. 示例代码# -- encoding: utf-8 --# @time: 2021/4/18 12:33# @Author: jsonLiu# @Email: [email protected]# @file: listStrToListimport

2021-04-21 23:57:10 8144

原创 python基础高级概述

1.1环境管理1. virtualenv的安装和应用pip install virtualenvpip install virtualenvwrapper-win创建一个存放虚拟环境的目录(建议命名为.env或.virtualenv)配置环境变量(变量名:WORKON_HOME,值:上面创建的虚拟环境目录路径)2. 虚拟环境常用命令:workon列出所有虚拟环境workon [name] 进入指定的虚拟环境deactivate 退出当前虚拟环境mkvirtualenv -p pyt

2021-04-14 00:20:47 329 3

原创 python高级编程之死锁

1.死锁定义: 在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源, 就会造成死锁。2.如何避免死锁:以一个固定的顺序来取得锁按照与取得锁相反的顺序释放锁from threading import Thread, Lockimport timelockA = Lock()lockB = Lock()class MyThreading1(Thread): def run(self): if lockA.acquire():

2021-04-11 22:27:54 613

原创 python高级编程之描述器类

描述器类: 一个类中,只要出现__get__、__set__、__delete__中的任何一个,该类就被称为描述器类# -- encoding: utf-8 --# @time: 2021/4/6 23:58# @Author: jsonLiu# @Email: [email protected]# @file: descriptorclass DescriptorClass(object): def __get__(self, instance, owner):

2021-04-11 21:44:04 109

原创 python高级编程之互斥锁

互斥锁定义:互斥锁提供一个可以在同一时间,只让一个线程访问临界资源的的操作接口。互斥锁(Mutex)是个提供线程同步的基本锁。让上锁后,其他的线程如果想要锁上,那么会被阻塞,直到锁释放后(一般会把访问共享内存这段代码放在上锁程序之后),如果在锁释放后,有多个线程被阻塞,此时所有的被阻塞的线程会被设为可执行状态。第一个执行的线程,取得锁的控制权——上锁操作,其他的线程继续阻塞。互斥锁说明:线程同步能够保证多个线程安全访问竞争资源,最简单的同步机制是引入互斥锁。互斥锁为资源引入一个状态:锁定/非

2021-04-11 17:00:21 299

原创 python之自定义属性访问

# -- encoding: utf-8 --# @time: 2021/4/6 23:29# @Author: jsonLiu# @Email: [email protected]# @file: customattributeaccessimport loggingclass CustomAttrVisit(object): def __getattr__(self, item): # 访问属性时,如果属性不存在(出现AttrError),该方法会被触

2021-04-09 00:47:19 123

原创 python自动化之动态参数获取(动态传参)

动态传参方式1:python反射setattr(对象,属性名,值):设置属性值 对象.属性名 = 值,对象为类对象或函数对象def setattr(x, y, v): # real signature unknown; restored from __doc__ """ Sets the named attribute on the given object to the specified value. setattr(x, 'y', v) is equivalent

2021-04-09 00:36:00 1650

原创 python之装饰器应用场景

1. 装饰器定义:满足闭包条件,装饰器的入参是一个函数,其返回值也是一个函数对象;满足闭包的三个条件:在外部函数中定义了内部函数外层函数返回内层嵌套函数名内层嵌套函数有引用外层非全局变量2. 作用:在不更改原功能函数代码,并且不改变调用方法的情况下为原函数添加新的功能;3. 应用场景(实例)应用1:登录/支付验证import sysimport time# 1. 登录操作isLogin = Falsedef login(): while True:

2021-04-06 23:01:49 406

原创 python之context(上下文管理器)

# -- encoding: utf-8 --# @time: 2021/4/5 22:48# @Author: jsonLiu# @Email: [email protected]# @file: 19contextmanager# with后面跟的是一个上下文管理器对象import loggingimport osclass CustomOpen(object): def __init__(self, file_nam...

2021-04-06 21:45:18 2957

原创 python之单例模式

# -- encoding: utf-8 --# @time: 2021/4/5 18:42# @Author: jsonLiu# @Email: [email protected]# @file: singlepattern""" 1、定义一个类属性,来记录该类是否创建过对象 instance = None 2、在_new_方法中对类属性做判断 - 2.1没有创建过对象。那就创建一个(保存起来),并且修改类属性的值 - 2.2创建过.

2021-04-06 21:35:10 101

原创 python内置函数isinstance

1. isinstance(object, className)判断一个对象是一个类的实例还是它的子类的实例如果对象object是className的实例,或者object是className的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False。class FatherClass(object): def __init__(self): passclass SonClass(FatherClass): def __i

2021-04-05 22:15:07 407

原创 python之timeit统计运行时间模块

1. timeit.timeit(stmt=‘pass’, setup=‘pass’, timer=<default timer>, number=default_number)timeit() 函数有四个参数,每个参数都是关键字参数,都有默认值。stmt:传入需要测试时间的代码,可以直接传入代码表达式或单个变量,也可以传入函数。传入函数时要在函数名后面加上小括号,让函数执行,如 stmt = ‘func()’ 。setup:传入 stmt 的运行环境,如 stmt 中使用到的参数、

2021-04-05 00:46:44 634 1

转载 python2.x time模块的使用

import time# 1. 获取当前时间戳ts = time.time()print "当前时间戳为:", ts# 2. 获取格式化的时间 (星期 月 日 时:分:秒 年份)localtime = time.asctime(time.localtime(time.time()))print "本地时间为:", localtime# 3. 格式化日期 time.strftime(format[, t])print time.strftime("%Y-%m-%d %H:%M:%S",t

2021-03-25 00:30:38 114

原创 IDEA运行java文件环境配置

新建一个空的新项目在新空项目下新建一个模块(此框会自动弹出)注:无jdk自行到百度找相应安装教程在模块下的src下新建一个包com.xxxx在com.xxxx下新建一个类,如HelloWorld在Hellow中编写代码package com.idea.test;public class HelloWorld001 { public static void main(String[] args) { System.out.pr..

2021-03-24 23:37:11 14524 3

原创 jsonpath模块基本应用

模块安装:pip install jsonpath引入from jsonpath import jsonpath基础语法$ 根节点. 子节点.. 子孙节点原函数方法:jsonpath(obj, expr, result_type='VALUE', debug=0, use_eval=True)使用方式1:jsonpath(数据对象,'$.父节点名称')方式2:jsonpath(数据对象,'$..子孙节点名称')demo实例// pip install jsonpathfr.

2021-03-24 23:06:03 238

原创 p2p借贷项目面试题

Java p2p项目面试题P2P项目专题● 具体的你在P2P项目中都干什么了,你负责哪一块,每一块实现的时候用到了哪些技术?● 你们项目的并发量设计了多少?● P2P项目上线了吗?● 你项目中的事务是怎么处理的?● 在秒杀项目中使用消息队列ActiveMQ进行流量削峰,如果ActiveMQ接收消息失败了,怎么办?消息在接收后会被服务器删除,为了避免接收消息失败而消息又被服务器删除,此时我们可以关闭自动确认机制AUTO_ACKNOWLEDGE,采用手动消息确认机制,由程序进行消息的确认,接收消息

2021-02-21 16:33:42 4860 6

原创 django错误合集

bug1修改前修改后bug2修改后bug3

2021-02-21 16:29:31 86

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除