自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【自动化测试介绍】

功能自动化•selenium:专门做web端的自动化测试工具 可以在 Windows、Linux 和 Mac的 Chrome和 Firefox中运行;免费,主要做功能测试,也可以做 接口自动化测试;多语言:Java、Python• appium:自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应 用,web应用和混合应用;跨平台的,可以用在OSX,Windows以及Linux桌面系统;在Python的appium包继承了Selenium接口自动化。

2023-05-08 14:52:54 130

原创 B/S架构和C/S架构

客户机-服务器(client-server)缺少通用性,系统维护、升级要重新设计和开发,维护和管理有难度例:csdn app浏览器-服务器例:csdn官网标准格式协议://服务器1P:端口/路径1/路径N?协议不同的协议有不同的解析方式服务器ip网络中存在无数的主机,要访问的哪一台,通过公网ip区分端口一台主机上运行着很多的进程,为了区分不同进程,一个端口对应一个进程,http默认的端口是80路径资源N多种,为了更进一步区分资源所在的路径(后端接口,一般称为"接口)

2023-05-08 14:03:59 137

原创 性能测试二【TPS/QPS/RT】

我们在压测的时候经常被问TPS和QPS,今天来聊聊这两者的区别一、TPS(每秒事务数)所谓事务:接口发起请求,服务器接收请求后进行内部处理,然后把结果返回给客户端所以在压测的时候无论是单接口压测还是多接口压测(业务压测),都可以看作是一个事务在客户机在发送请求时开始计时,收到服务器响应后结束计时。TPS=事务数/时间(精确到s)二、QPS(每秒查询率)查询率:指的是一台服务器每秒能够响应的查询次数,可以检测服务器在规定时间内可以处理多少流量。(数据库中,每秒执行查询SQL的次数)一般在压测

2022-03-01 15:51:43 1158

原创 unittest笔记五【数据库工具类封装】

简介:安装python3操作mysql数据库数据库数据库封装from warnings import filterwarnings 操作的时候方便忽略错误告警# 忽略Mysql告警信息filterwarnings("ignore", category=pymysql.Warning)封装工具类MysqlDb建立数据库连接使用cursor方法获取操作游标关闭游标和连接#查询数据库#查询,传参:sql 和 state(默认查询全部)def query(self, sql, state=

2022-03-01 14:24:41 406

原创 unittest笔记四【通用网络请求工具类封装】

背景: 每个请求需要做异常捕获,日志记录,协议转换,封装工具方便进行统一维护新建项目 util、main、config包和requirement.txt开发import requests​​"""Http工具类封装"""​class RequestUtil:​ def __init__(self): pass​ def request(self, url, method, headers=None, param=None, content_type.

2022-02-23 17:34:01 188

原创 unittest笔记三【批量加载用例】

TestSuit 手工添加用例TestLoader 用例加载器 。我们可以通过把用例都存放在这里,然后再通过Suite进行批量执行,但无法对case进行排序加载 UserTestCase 下的全部用例 suite.addTests(loader.loadTestsFromTestCase(UserTestCase)) ```# -*- coding: UTF-8 -*-import unittest​from UserTestCase import UserTestCasefrom User

2022-02-23 17:28:01 339

原创 unittest笔记二【Unitest测试套件TestSuite (用例按顺序执行)】

需求:测试用例的执行顺序是根据测试用例名称顺序执行的,有没办法自定义顺序?如果有多个测试文件,怎么进行组织?unittest.TestSuite() 测试套件帮我们解决用来确定测试用例的顺序,哪个先执行哪个后执行如果一个class中有四个test开头的方法,则加载到suite中时则有四个测试用例由TestLoder加载TestCase到TestSuiteverbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告、2 是详细报告 默认1 会在每个成功的用例前面有个“.” 每个失

2022-02-22 18:06:34 953

原创 unittest笔记一【介绍以及快速入门】

一、单元测试框架unittest入门用import语句引入unittest模块测试的类都继承于TestCase类setUp() 测试前的初始化工作tearDown()测试后的清除工作 (在每个测试方法运行时被调用)断言 :self.assertEqual()# -*- coding: UTF-8 -*-import unittestclass UserTestCase(unittest.TestCase): def setUp(self): print(" se

2022-02-22 18:02:22 185 1

原创 Android接入【SDK广告】

最近接触的项目主要是在app投放广告获取收益用户通过观看广告获得游戏奖励广告平台:常见的有多盟,有米、点金、百度、谷歌的admob等等一般情况大家会选择广告服务提供商注册开发者账号,在自己的APP里面加上广告位代码,集成他们的广告SDK包。就完成了。大家可以自行查看接入广告的操作流程栗子1栗子2栗子3...

2021-12-29 15:46:26 3501

原创 升级Monterey的血泪史~~哭唧唧~~

此文章与学习无关~因为手残点了升级mac系统,也就是Monterey。我悲催的两天一夜就开始了!!悲催的源头就是,在升级前我没有做数据备份@-@周四下午六点开始升级,一直到第二天九点,电脑卡死状态,关机重启也没用。我哭了呀,遂打电话给苹果客服。客服建议先关机。关机后点击开机并按住Command-R,进入这个页面选择重新安装,,并卵用~~于是乎客服小姐姐又说抹盘重装~~,,但是我数据没有备份呀????我们又开始了漫长的数据备份过程~~~也就四五个小时吧,结果映像出来的数据是损坏的,根本

2021-11-23 16:33:57 9324

原创 【chromedriver】mac下安装配置chromedriver

一、查看chrome版本,进入下载页下载对应安装包下载完成后解压二、打开终端 cd.. 进入根目录, cd /usr/local/bin进入bin目录输入 open . 打开bin目录,将解压后的包拖进来三、在终端输入chromedriver验证是否安装成功...

2021-11-23 15:49:20 698

原创 【jmeter】mac下的jmeter安装及环境配置

一、下载jmeter二、在终端输入java -version校验jdk是否安装(由于Jmeter是基于java开发的,所以首先要安装Java JDK)三、下载jdk对应版本下载地址:https://www.oracle.com/java/technologies/downloads/#java8下载完成后直接打开安装安装完成后在终端输入java-version验证是否安装成功,安装成功可以看到版本号四、配置环境在终端输入vim .bash_profile,打开文件进入编辑模式,“i”

2021-11-22 16:41:36 2837

原创 selenium+unittest断言报Assertion failed

首先我用到的断言方法是assertEqual(a, b, msg) 断言a和b是否相等,如果不相等则测试失败。msg为可选参数,用于失败时打印信息我的写法如下每次运行都会报Assertion failed再尝试了n种方法后发现是因为我在a,b,msg之间加了空格,虽然有空格不在引号内,但还是报错,去掉空格后校验成功!!...

2021-11-18 11:58:34 7585

原创 selenium笔记3-错误截图

try: driver.find_element_by_css_selector("111").click()//点击事件except: driver.get_screenshot_as_file("./error_png.png") //找不到事件就截图

2021-11-16 17:38:32 6049

原创 selenium笔记2-鼠标事件、网页等待、弹窗处理、cookie处理

三、多知识点综合实战之模拟登录鼠标事件之菜单栏hover弹出引入 ActionChains 类from selenium.webdriver.common.action_chains import ActionChainsmove_to_element(to_element) 鼠标移动到某个元素对定位到的元素执行鼠标移动到上面的操作ActionChains(driver).move_to_element(ele1).perform()四、自动化测试实战之网页等待为什么需要等待时间–》等系

2021-11-16 17:33:24 733

原创 selenium笔记1-基础定位篇

一、基础知识1、定位网页元素技巧clear() //清空send_keys() // 输入back() //后退页面maximize_window() // 最大化窗口click() //点击事件,点击按钮,超链接submit() //提交表单根据id查询定位:find_element_by_id根据name查询定位:find_element_by_name根据class查询定位:find_element_by_class_name根据tag name标签定位:find_ele

2021-11-09 09:53:29 186

原创 性能测试一【MySQL慢查询】

一、开启慢查询日志开启慢查询日志:set global slow_query_log=‘ON’;校验是否开启成功:show variables like ‘slow_query%’;二、设置慢查询日志记录位置以及记录慢sql的条件设置日志存放位置:set global slow_query_log_file=’/usr/local/mysql/data/slow.log’;设置超过3s的查询就记录下来:set global long_query_time=3;三、重启服

2021-08-24 11:46:49 367

原创 关于项目管理

一、项目延期问题在立项-开发-发布的过程中我们会遇到大大小小的很多问题,其中最致命并且普遍存在的就是项目延期。那关于项目延期的原因,我整理了以下四点1、产品的需求或者由于前期准备不充足或新的用户反馈需要修改,从而增加了开发时间2、开发时间的前期细化不准确。几个星期才可以完成的事情,过于乐观地估计了更短的时间3、沟通遇到了问题,当开发人员发现某个功能其实难度非常高, 执行压力大的时候,没有尽早沟通,deadline 快到了才说,耽误了工期4、产品功能的设计过于烦琐,本来可以简化的功能,却花费了大

2021-08-18 11:03:27 97

原创 性能测试分享

**一、性能测试流程**明确压测模型 -> 场景分析 -> 数据设计 -> 压测执行 -> 数据清理1、压测模型分为两种:a、对于还未上线运营的新系统,我们一般会让应用的业务方或者产品经理给出一个预估的值,但是这个预估值需要评估是否合理;b、对于已上线运营的应用,我们一般会分析日常/节假日总请求量和峰值TPS数据来确定预估值,这样会接近实际场景2、提前进行压测场景设计,调试好压测脚本,准备好压测数据3、压测前需要发出压测通知,包括压测背景、压测时间、压测范围,邮件抄送运维

2021-08-18 10:44:50 309

原创 如何读取 list嵌套dict的数据

场景:yaml文件存放测试用例, 我用的是list嵌套dict形式我在执行用例的时候是全部执行,现在需要执行某个用例已知用例的标题,如何查询这条用例思路:循环比较查询 args = read_yaml() for i in args: if i['api_name'] == pre_casename: print(i)...

2021-08-18 10:32:20 368

原创 解决pytest--allure报告空白问题!!!!

!!!!!!!!真是坑爹啊执行代码,生成report成功,但是运行的时候打开是空白页,,在找换了n种方法后,发现是allure版本的问题,,我之前下载的是【2.13.10】!!!替换版本后浏览器就可以打开了,我换的是【2.13.9】...

2021-07-14 17:44:57 2582 2

原创 解决zsh: command not found问题

zsh: command not found:看字面意思就是找不到这个方法,缺少环境变量配置1、打开zsh配置文件 open .zshrc2、添加缺少的文件路径PATH="/Users/mengmeng/Downloads/allure-2.13.10/bin:${PATH}"export PATH3、关闭弹窗,使配置生效 source .zshrc...

2021-05-26 16:20:01 57553 3

原创 Mac如何配置allure环境

1、安装allure(自行官网下载)2、打开终端,将allure拖进来,查看路径将路径修改为以下格式:PATH="/Users/mengmeng/Downloads/allure-2.13.10/bin:${PATH}"export PATH3、打开配置文件 open -t ~/.bash_profile4、添加变量5、关闭文本框,使配置生效,在终端输入source ~/.bash_profile6、验证是否生效 allure --version出现版本号即配置成功...

2021-05-26 15:42:54 856

原创 执行Python提供requirements.txt文件来进行项目中依赖的三方库进行整体安装时报错No such file or directory: ‘requirements.txt‘

1、直接执行pip install -r ./venvrequirements.txt报错,提示No such file or directory: ‘requirements.txt’2、发现没有带目录,加上目录就可以了pip install -r ./venv/requirements.txt

2021-05-22 15:39:33 2772

转载 系统压测指南

一.性能测试的基本理论1.概念阐述吞吐量(TPS)吞吐量是指系统在单位时间内处理请求的数量。体现系统处理请求的能力,这是目前最常用的性能测试指标。QPS(每秒查询率)官方说法QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。个人更倾向于理解为系统每秒处理完请求的次数。响应时间响应时间是指执行一个请求从开始到最后收到响应数据所花费的总体时间。它的数值大小直接反应了系统的快慢。并发数并发数是指系统可以同时承载

2021-05-22 14:22:52 610

原创 性能测试计划书以及如何实施

初步计划步骤:1,整理性能测试需要的文档数据范围2,根据文档类型分类,拆分成小的任务小任务作为分支,针对各个文档查找得到报告的方式,整理文档4,组成一个完整的测试方案,指定测试计划5,执行测试计划注:针对不同场景设计单压和混压知识点:Jmeter测试传参问题了解性能测试的目的,查看性能测试用例了解PTS百分位,延迟,吞吐量,正确率,CPU,内存,网络,IOPS,上下文线路等参数的意思学习看服务器资源使用报告,数据库应用监控报告,数据库资源使用报告,PTS压测报告数据库连接池线程池,J

2021-05-22 14:10:09 721

转载 jmeter性能测试,监控插件介绍

一、下载安装1、下载地址:https://jmeter-plugins.org/downloads/old/2、下载完成后:解压JMeterPlugins-Standard-1.4.0.zip,将其中\lib\ext\JMeterPlugins-Standard.jar包复制到jmeter安装目录下的\lib\ext下解压JMeterPlugins-Extras-1.4.0.zip,将其中\lib\ext\JMeterPlugins-Extras.jar包复制到jmeter安装目录下的\lib\e

2021-04-26 16:26:54 1064 1

原创 jmeter如何在压测过程中修改线程数

前言:正常我们在使用jmeter进行压测的时候,是创建一个线程组、监听器、http请求,在线程组中设置线程数以及压测时长,无法压测过程中调整线程,因此我们需要借助插件完成正文一、下载插件1、下载地址:https://jmeter-plugins.org/install/Install/2、下载完成后将jar包复制到JMeter中的lib\ext目录下3、重启jmeter4、打开jmeter->选项->Plugins Manager根据自己的需求安装对应插件在这里我们用到的

2021-04-26 11:48:08 1368

原创 python+unittest接口自动化测生成html报告【HTMLTestRunner】

1、unittest中没有HTMLTestRunner,所以pip下载会失败,我们要去官方下载HTMLTestRunner2、下载成功后根据python版本进行修改,这个网上很多教程(https://www.cnblogs.com/cheng10/p/10438156.html)3、网上其他教程是将下载的文件放在lib或者bin目录,,我试了下很不方便,所以这里教大家一个简单方法(1)直接在项目里面新建一个package文件,将HTMLTestRunner.py文件拖进来(2)修改你的代码,如下,运

2020-12-01 11:07:16 234

原创 unittest断言-assertIn

1、我用到的断言是assertIn,校验我查询结果的返回数据是否包含我的查询条件 name = "樱花" resname = res['data']['items'][0]['userName'] #print(resname) try: self.assertIn(name,resname) print("查询兑换记录成功") except: print(

2020-12-01 10:48:28 1462

原创 jmeter函数助手-时间函数

1、 time函数,获取当前时间2、randomdate --随机时间

2020-11-10 00:02:36 476

原创 postman生成随机数

1、{{$timestamp}}:将当前的时间戳,精确到秒2、{{$randomInt}}:添加0和1000之间的随机整数3、{{$guid}}:添加一个V4风格GUID,类似于下图所示:

2020-10-26 14:52:17 7541

转载 unittest类的初始化和释放的作用以及setup、teardown等实现用例初始化及释放和类的初始化及释放

1、类的初始化和释放类的初始化:setUpClass()类的释放:tearDownClass()这俩分别在整个class中所有case运行之前和之后运行一次。setUpClass() 方法用于类的初始化,比如在测试最开始打开app、打开浏览器等。tearDownClass() 方法则用于类的释放,比如测试结束以后的清理工作,比如关掉进程等。在使用的时候必须要加上@classmethod修饰符,classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需必须是表示自

2020-10-24 16:19:15 1071

原创 python的分支和循环

while循环 while 条件: 循环体for循环for 目标 in 表达式: 循环体range()range([start]stop[,step=1])list(range(5)) //[0,1,2,3,4]list把数据转换成列表range(2,5) //2,3,4range(2,10,3) //2,5,8if条件分支break\continuebreak:终止循环,跳出循环体continue:终止本轮循环并开始下一轮循环...

2020-08-31 14:51:26 101

原创 Python的数据类型

Python的一些数值类型:整型、布尔类型、浮点型、布尔型Python的数据类型转换int()转换为整数浮点型转换为整数,直接截断处理,,浮点数5.99转换为整型就是5float()转换为浮点数str()转换为字符串获得关于类型的信息type()直接返回结果告诉你数据类型isinstance( )两个对比,同一类型返回true,不同false例:a ="测试” isinsta..

2020-08-29 11:51:26 94

原创 Python 的E记法

求幂:2**7,即2222222E记法:2e7,即:2101010101010*102e-7,即:0.0000002求幂是指一个数自乘得到幂,E记法表示乘以10的几次幂

2020-08-29 11:30:21 1368

原创 完成压测报告后的一些总结

一、压力测试关注点服务器cpu正常服务器内存正常服务器响应时间正常数据库cpu正常数据库内存正常数据库响应时间正常数据库连接数正常消息队列生产和消费数量正常二、JVM配置、数据库配置、服务器配置三、测试策略1、项目具体需求及业务场景:关注真实用户会是怎样的一个业务场景,确定用户的用户习惯。2、指标:响应时间在多少以内,并发数多少,tps多少,事务成功率,波动范围,稳定运行时长,资源利用率。3、环境:生产环境服务器数量,测试环境服务器数量,按照资源配比得出测试指标。4、压力机数量:

2020-08-21 16:35:27 732

原创 常见的HTTP状态码返回

一些常见的http状态返回代码为:200 - 服务器成功返回网页404 - 请求的网页不存在503 - 服务不可用http状态返回代码 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。http状态返回代码代码 说明100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101 (切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换。http状态返回代码 2xx(成功)表示成功处理了请求的状态代码。ht

2020-08-17 17:55:49 457

原创 python数据库连接

1、导包2、连接数据库3、校验连接是否成功import MySQLdb#连接数据库connect = MySQLdb.connect( host = "数据库地址 ", user = "账户名", passwd = "密码", db = "数据库名", #一个数据库地址可对应多个库 charset = "utf8")c = connect.cursor() #创建游标对象c.execute("select * from print_d

2020-08-17 17:11:16 141 1

原创 压力/负载测试到底该关注哪些(二)

在上一篇我们提到了关于性能测试需要关注的点,那这一篇就记录一下这些如何去定位找到这些问题。1、cpu定位分析在cpu分析定位的过程中,需要注意利用率大于50%需要注意下,大鱿鱼70需要密切关注,大于90,情况就比较严重了。通过监控分析可以查看cpu利用率。命令:,vmstat,统计l-id的技术,sar,mpstat:idle 空闲的usr 用户使用的sys 系统使用的,toprunning   正在运行的进程数sleeping  睡眠的进程数stopped  停止的进程

2020-08-13 15:41:31 1105

空空如也

空空如也

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

TA关注的人

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