- 博客(39)
- 收藏
- 关注
原创 selenium实现cookie免登陆自动化测试
一、测试场景在利用unittest框架实现自动化的过程中,发现每次需访问已登录状态才能访问的页面时,都需要重新登录一次才行,不能只登录一次,其他页面也能访问。二、实现思路通过selenium模拟账号密码登录,同时获取cookie,保存在.txt文件 — 读取txt文件中的cookie,通过driver.add_cookie添加cookie,访问登录后才能访问的接口(页面)(为了命令清晰明了,部分页面使用API进行访问,没有使用定位元素定位。)实践演示:笔者拿自己自动化测试过程的一小部分内容举例如
2020-10-10 15:53:16 887
原创 jmeter跨线程组session共享
背景:测试登录后的某个接口A的负载测试,而不是每测试一次这个接A口都登录一次,影响此接口的测试结果。即不同的线程组可以使用同一个的登录信息,需要实现session共享(cookie保持)。一、同线程组的session共享方式一:在线程组中添加一个HTTP Cookie 管理器,即可自动获取登录。方式二:在同一个线程组中的不同控制器中实现session共享,将正则表达式获取的session值传递给HTTP Cookie 管理器.二、跨线程组的session共享思路: 设置一个jmeter全局
2020-08-05 11:45:49 1256
原创 Postman批量接口测试搜索框
测试内容:测试一个搜索框,批量导入csv文件,每次搜索关键字keyword,是否返回正确的出现数量total前置条件:1、请求的参数设置2、读取测试数据:在发送请求前执行的脚本,读取data.csv的keyword3、测试数据准备:data.csv文件的内容,keyword是搜索关键字内容,expectant_total是预期结果即搜索关键字返回的个数4、runner的批量导入数...
2020-04-02 17:29:56 1006
原创 软件测试算法题更新中
1、将一个数组包含有混序的正负数,按一正一负顺序排列,原来的相对位置不变,某一个符号的数较多时,依次按照原顺序排在最后面。[1, 2, 3, 7, 9, -5, -3, -4, -7, -8, -11, -3, -2]i = 0j = 0array = [1, 2, 3, 7, 9, -5, -3, -4, -7, -8, -11, -3, -2]result = []while True: while i < len(array): a = array[i]
2021-07-26 16:39:33 789
原创 python关于json文件的读取写入实战
一、理解为什么要用json模块的格式读取写入?1、由于python默认读取write()写入read()文件的数据格式为字符串(str),不能读取写入列表、字典等类型数据,所以需要采用json数据格式来存储数据。2、json数据格式在多种语言中通用,有利于分享数据。二、python读取写入json格式分别有2种不同形式1、json.dump()用于存储写入列表至文件list.json。import jsonnumbers = [2,1,4,3,4,5]file_name = "list.
2020-10-15 14:28:04 5799
原创 mysql使用中的常见错误
mysql使用中的常见错误问题1:启动报:发生系统错误 5。拒绝访问。解决方法:启动时,以管理员身份运行即可,window10 点击左下角徽标 — 选择windows powershell(管理员)打开 — 再执行mysql启动命令。问题2:在执行mysql密码连接时报错如图:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES).解决方法:一般是密码输入错误导致的报错。如果
2020-10-13 14:33:34 688
原创 selenium利用cookie跳过验证码登录
1、测试场景在实现web自动化的过程中,为了解决每次登录时,验证码会随机变化的问题,以达到测试已登录状态的其他页面模块,我们需要利用cookie跳过登录,完成测试。正常情况下,项目测试人员是不会遇到这种问题的,会找开发要一个固定验证码的万能账号,以结合selenium实现自动化登录。(后续会有实现一次登录,多次测试其他已登录页面的文章可以参考一下。)2、操作原理在等待间隙中,先手动登录,填写账密、验证码信息,登录成功 — 利用selenium的get_cookie() 获取已登录cookie — 再
2020-10-10 09:59:21 990
原创 通过Dockerfile启动容器遇到的两个不常见错误
1、报错:ImportError: cannot import name ‘cached_property’ from ‘werkzeug’#安装更高级的版本pip install Werkzeug==0.16.02、已安装pip仍报错:/bin/python3: No module named pip#在dockerfile中添加RUN wget http://bootstrap.pypa.io/get-pip.py && python3 get-pip.py...
2020-09-14 14:23:23 1028 1
原创 tar解压文件至指定目录,不包含原目录
1、tar解压文件至指定目录,不包含原目录要解压的压缩包原目录结构如下 tar -zxf log.tar.gz --strip-components 1 -C /opt/new_test注:–strip-components 1 解压至下一级目录,若为2则解压至下下级目录2、压缩只指定的目录,不包含原目录前提:未压缩之前的目录如下:/opt/test/111.log/opt/test/222.log/opt/test/333.log我们将test目录中的文件压缩至指定目录new_te
2020-08-18 14:21:50 17968
原创 config.ini的配置、读取
1、基本介绍一般情况下为了方便代码维护,我们把经常需要修改的参数放到配置文件中,可以在项目中新建一个config文件夹,存放config.ini配置文件。2、具体配置格式config.ini配置如下:#config.ini文件# this is config file, only store browser type and server URL[browserType]#browserName = FirefoxbrowserName = Chrome#browserName = IE
2020-07-18 11:28:43 7946 1
原创 os.path()的详细使用
import os'''***获取包含当前文件目录\***'''print(os.path.abspath(__file__))'''***获取当前目录\***'''print(os.getcwd())print(os.path.abspath(os.path.dirname(__file__)))'''***获取当前目录/***'''print(os.path.dirname(__file__))'''***获取上级目录\***'''print(os.path.abspath(.
2020-07-18 11:12:46 1950
原创 基于gitbook、nginx实现静态网站部署
基于gitbook、nginx实现静态网站部署场景:对markdown格式的文件进行静态页面的呈现,同时利用nginx实现静态网站的部署一、gitbook部分1、下载好gitbook,可参考:https://blog.csdn.net/Junetest/article/details/1060145942、进入需要转换为电子书的文件夹,执行初始化gitbook init3、构建电子书gitbook install #安装插件gitbook build4、构建完之后,当前目录下会增加一个
2020-05-29 15:54:10 1728
原创 Jenkins的QQ邮箱配置
一、开启QQ邮箱的SMTP服务器1、首先确定 QQ邮箱SMTP服务器已开启(否则QQ邮箱收不到jenkins的邮件),如下图所示,点击设置-- 开启POP3/SMTP服务-完成“验证密保”-记住16位的“授权码”-完成SMTP服务开启。(授权码jenkins邮箱设置需要)二、安装邮箱插件1、在jenkins的系统管理中安装插件 —Email Extension Plugin三、jenkins邮箱的全局配置1、进行jenkins邮箱的全局配置,系统管理–系统设置–邮箱设置–最后可以发送邮箱验证。
2020-05-21 15:44:56 2621
原创 jmeter+ant+jenkins搭建
简单了解:jmeter:模拟对接口的并发操作ant:构建工具,可以批量跑指定目录下的Jmeter脚本jenkins:持续集成工具,可以定时自动执行jmeter脚本,输出报告前提: 安装好jdk、jmeter、ant、jenkins一、Jmeter+ant1、首先确保测试脚本在jmeter界面模式下能正常运行。(进行负载测试时,把察看树、聚合报告这些无关插件禁用,以免影响性能)2、 将JMeter所在目录下的子目录extras中的 ant-JMeter-1.1.1.jar 复制到Ant所在lib
2020-05-21 15:20:19 615
原创 grep 、sed、awk三剑客应用
一、定义grep 、sed、awk被称为linux中的"三剑客"。功能特点:grep适合查找功能sed适合取行和替换awk适合取分隔后的列下面对这3个命令进行一个实践。二、grep1、grep查看文件中是否包含有指定的字段并打印出来,常用来查询日志、端口等#查看文件中中含有8080字段的行grep 8080 file 确定8080字段在文件中的行数grep -n 8080 file#确定redis在文件中的行数并且忽略大小写grep -n -i "redis" file #匹
2020-05-11 11:32:10 404
原创 awk命令的基本使用
awk定义:awk是一门编程语言,它支持条件判断、数组、循环等功能。所以,我们也可以把awk理解成一个脚本语言解释器。在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息。一、awk的脚本语法awk 程序通常由:BEGIN语句块、program、 END语句块,共3部分组成。awk [options] 'BEGIN{ action;… } pattern{ action;… } END{ action;… }' fileprogram又可以细分成pattern和action
2020-05-11 10:00:20 883
原创 初识git、GitHub、GitLab、GitBook
一、git、GitHub、GitLab、GitBook的简单定义1、git :是一种版本控制系统,是一个命令工具2、GitHub :开源代码库及版本控制系统,GitHub同时提供公共仓库和私有仓库,但如果要使用私有仓库,是需要付费的。3、GitLab :解决了GitHub创建私人仓库收费问题,同时支持企业搭建属于自己的GitLab仓库。提高数据的安全性。4、GitBook :GitBook 是一个基于 Node.js 的命令行工具,可以与Markdown 和 Git 结合,来管理文档,预览、制作电子
2020-05-09 11:47:01 979
原创 用Eclipse构建maven项目
一、创建maven项目1、新建maven项目2、设置默认工作空间3、选择maven项目的原型,如图所示4、创建maven项目的必要参数5、会生成Maven项目如下二、更改Maven项目中使用的jre运行环境(这一步骤,是避免后续报错,也可暂不修改)1、永久更改修改maven目录下的settings.xml文件2、增加的内容如下,版本根据自己安装的jdk版本而定。&...
2020-04-28 15:31:32 2345
原创 使用maven创建redis客户端连接
使用maven创建redis客户端连接java连接redis集群Jedis Client是Redis官网推荐的一个面向java客户端,库文件实现了对redis各类API进行封装调。笔者通过用maven构建此项目(简单使用maven可以参考另一篇文章),在Eclipse中进行如下操作。1、jedis客户端的所有依赖关系pom.xml文件如下<project xmlns="http:/...
2020-04-28 14:08:07 620
原创 用Maven打jar包(含第三方依赖包)
应用场景:需要将Java连接redis客户端项目导入到内网环境的容器中,此项目包含多个第三方包。具体操作如下:1、在项目project中加入插件的依赖,写入pom.xml文件中:<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</ar...
2020-04-28 13:57:32 2293
原创 对linux的进程、线程理解、查看
一、进程、线程的概念进程:理论:进程是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位。线程:理论:线程是CPU调度和分派的基本单位。二、进程和线程的关系:进程可以比喻为----火车线程可以比喻为----车厢1、进程下可以运行多个线程,进程包含线程。2、操作系统在运行的时候会为每个进程分配不同的内存空间,而对线程而言,除了CPU外,系统不会为线程分配...
2020-04-17 14:59:36 503
原创 Redis基于dockerfile的容器部署
一、基于redis源镜像的dockerfile内容FROM redisMAINTAINER chenyiENV TIME_ZOME Asia/ShanghaiCOPY redis.conf /usr/local/etc/redis/redis.confRUN mkdir /var/log/redis && \touch /var/log/redis/redis.log ...
2020-04-16 17:15:43 1396
原创 linux的cron定时时间显示和date不一致
cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。1、发现cron定时的任务一直没有按要求执行如:我设置的定时任务是每天11点22执行,但是查看日志并没有执行,也没有报错,第二发现3点22的有执行脚本22 11 * * * sh /root/redis_slowlog.sh2、意识到,cron定时时间显示和date不一致,百度,想起以前有更改过服...
2020-04-11 11:38:21 944
原创 Collection Runner 使用实例
Collection Runner使用Collection Runner能够实现批量参数化进行接口自动化测试1、页面介绍choose collection: 选择要运行的用例集Environment: 选择环境变量Iterations: 设置循环次数Delay: 每次循环的间隔Data: 选择csv文件(可以添加测试数据,在tests中用data参数访问)run order:选择需...
2020-04-08 10:28:28 1583
原创 mock server设置后,postman不能访问,浏览器可以访问
mock server设置后,postman不能访问,浏览器可以访问postman报错:Could not get any response解决方法:关闭settings中的ssl权限
2020-03-31 16:35:55 1210
原创 Redis的过期删除策略
Redis的删除策略过期策略: 即redis针对过期的key使用的清除策略,策略为:定期删除+惰性删除。内存淘汰机制: 即内存占用达到内存限制设定值时触发的redis的淘汰策略来删除键。下面是我对过期删除策略和内存淘汰策略的对比删除策略和maxmemory关系使用客户端命令config set maxmemory 去修改值,这个命令是立即生效的,需要使用config rewrite命令...
2020-03-21 17:47:22 303
转载 Redis持久化
Redis持久化、删除策略一、什么是持久化?持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等。持久化是将程序数据在持久状态和瞬时状态间转换的机制。二、Redis支持的两种持久化方式Redis的数据都是存储在内存中的,所以Redis持久化也就是要把Re...
2020-03-21 17:33:49 161
原创 Fiddler之Filters使用
Filters功能可以过滤需要捕获的访问信息实战:如下图所示,勾选和填写红框部分,再点击右侧的actions运行,可以过滤出访问填写地址的访问信息各个选项的具体介绍:No Zone Filter 不分区域过滤(内网外网都显示)Show only Intranet Hosts 只显示内网主机(可以通过Fiddler的快照功能,在Sessions里边加一个本地的Session,来查看此功...
2020-03-18 10:44:20 623
原创 Linux按具体时间段查询日志
1、首先一般查询日志tail -f xxx.log 查询最近10行tail -n 50 xxx.log 查询最近50行日志2、按时间段查询方法一:使用sed -n查询,并且输出至aa.log文件sed -n '/Mar 15 19:01:01/,/Mar 15 23:01:01/p' xxx.log >aa.log注意:开始时间、结束时间一定要和linux里面的...
2020-03-16 11:58:20 7470 2
原创 MySQL将一个表中一列替代另一个表的一列
要实现的功能:将salary表中的price列替代掉shop表中的pay列?(把商品的价格与商品列表组成一个新表)表A:shop:表B:salary:解决方法:方法一: 创建一张新表,多表查询create table Shopping_list(select id,type,product,shoper,orderdate,price from shop,salary where...
2020-03-13 15:52:14 2074
原创 linux定时备份Redis
Linux定时备份Redis1、 查看当前linux系统是否安装了定时服务:命令rpm -qa | grep crontab,若未安装, 参考:https://www.cnblogs.com/shaohuixia/p/5577738.html2、编辑定时任务,crontab -e 进入编辑模式,设置备份任务:每天的2:25开始执行一个shell文件。(若配置了,没有执行,重启crond试试:/...
2020-03-11 14:43:57 694
原创 以普通用户执行定时任务(crontab)
以普通用户执行定时任务(crontab)(用root权限执行下面命令)1、以普通用户test1开启一个定时任务crontab -e -u test12、定时任务是执行shell脚本,usertest.sh如下,顺便打印执行时间:#!/bin/bashdeclare -i i=0while ((i<=2))do echo "Normal user can perfor...
2020-03-11 14:23:53 9291
原创 bps、Byte、MiB、bit、bits之间的关系
**bps、Byte、MiB、bit、bits之间的关系**1、bps是速度单位,1Mbps=1000 000 bps,1bps=1bits/s。2、Byte是大小单位,Byte意为“字节”,是计算机文件大小的基本计算单位,1 Byte = 8 bits。3、bit是大小单位, bit来作数据传输的单位, 表示数据量。bit意为“位”或“比特”,是计算机运算的基础,属于二进制的范畴;4...
2020-03-09 15:36:43 28657
原创 mysql索引相关操作
1、MySQL索引的概念索引是对数据库表中一个或多个列的值进行排序的结构。例如这样一个查询:select * from table1 where id=10000。如果没有索引,必须遍历整个表,直到ID等于10000的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),即可在索引中查找。由于索引是经过某种算法优化过的,因而查找次数要少的多。可见,索引是用来定位的。注意:尽管唯一...
2020-03-09 11:11:15 194
原创 fio性能测试:导致磁盘容量/dev/vdb大小变为18Z解决方法
一头雾水测试云硬盘性能,导致磁盘写满,百度无数方法没有实际可以解决的,在运维大神的提点下,可以恢复云硬盘容量了读磁盘脚本:fio --name=fio-test --direct=1 --size=20G --refill_buffers --norandommap --randrepeat=0 --filename=/dev/vdb --rw=randread --bs=4k --ioengi...
2019-11-01 14:19:20 1998
原创 服务器返回的状态码含义
状态代码由三位数字组成的含义1xx:指示信息 —— 表示请求已接收,继续处理。2xx:成功 —— 表示请求已被成功接收、理解、接受。3xx:重定向 —— 要完成请求必须进行更进一步的操作。4xx:客户端错误 —— 请求有语法错误或请求无法实现。5xx:服务器端错误 —— 服务器未能实现合法的请求。常见状态代码200 OK:客户端请求成功。400 Bad Request:客户端请求有...
2019-10-14 10:59:01 565
转载 B/S与C/S架构
C/S架构是第一种比较早的软件架构,主要用于局域网内。也叫 客户机/服务器模式。B/S架构的全称为Browser/Server,即浏览器/服务器结构。
2019-10-14 10:21:06 158
原创 平台登录闪退
1.memcached存储机制问题2.负载均衡方式⚫按权重轮询⚫ 按IP Hash⚫ 加权最小连接数https://blog.csdn.net/weixin_42075590/article/details/80631439https://blog.csdn.net/jasonlee_lijiaqi/article/details/78486218...
2019-10-11 09:26:53 760
原创 You need to be root to perform this command.的处理
1.输入 su,报错解决:su: Authentication failure问题输入 sudo passwd root
2019-10-10 17:18:53 968
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人