![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
总结
文章平均质量分 69
z917185537
这个作者很懒,什么都没留下…
展开
-
通过pytest-xdist插件并发执行用例时, scope=session的fixture会运行多次问题的解决方案
在UI自动化项目中,使用的是pytest + playwright, 需要实现同一个用户只登录一次的,所以在conftest.py中定义了一个scope=session的fixture,然后在此fixture中实现了系统登录,在非并发模式下执行的时候,能保证同一个用户只登录一次,但是并发执行的时候每个case都会执行登录。原创 2024-05-12 22:22:17 · 407 阅读 · 1 评论 -
pyenv-win管理windows上多个版本python
是一款管理多个python版本的工具,可以便捷的切换使用的python版本,但是不支持windows环境,在windows环境需要使用。原创 2024-04-15 22:47:31 · 403 阅读 · 1 评论 -
pytest实现日志按用例输出到指定文件中
执行自动化用例时,希望日志按用例生成一个文件,并且按用例所在文件生成目录,用例失败时便于查看日志记录。原创 2023-09-12 22:35:47 · 565 阅读 · 0 评论 -
Treating warnings as errors because process.env.CI = true. Most CI servers set it automatically.
通过控制台手动执行就不会有这样的错, 然后通过jenkins pipeline执行yarn build后报错,如图所示。原创 2023-08-30 16:34:42 · 582 阅读 · 0 评论 -
通过js自动上传图片
已经获取了图片的地址,想直接通过这个链接上传到网站指定位置。, 需要导入jquery,执行以下代码后,就可以正常执行。以上代码中注释的代码。原创 2023-07-28 11:44:30 · 566 阅读 · 0 评论 -
pipenv虚拟环境管理工具使用总结
之前管理项目的依赖文件用pip生成requirements.txt,每次依赖的包有更新后都需要手动更新一下requirements.txt,不方便而且有时还会忘记更新,后来接触到pipenv这个工具很好用,部署新环境也很方便,简单记录一下常用的命令和需要注意的地方。原创 2023-07-27 18:37:59 · 1268 阅读 · 0 评论 -
自动化测试工具playwright、selenium4、cypress等
自己之前用selenium, cypress工具做过自动化测试,目前公司要做自动化测试,主要产品是web网页(PC和手机端),微信小程序和 app, 需要结合公司的产品和各工具的特点来选择符合的测试工具。原创 2023-06-16 17:10:29 · 671 阅读 · 0 评论 -
.bashrc中配置环境变量不生效
在.bashrc文件中配置环境变量后,运行了命令执行pipenv命令有效,然后新开一个终端后,提示 command not found。原创 2022-11-16 21:17:32 · 3269 阅读 · 0 评论 -
airtest api
airtest api原创 2022-10-07 07:28:07 · 497 阅读 · 0 评论 -
css选择器
基本选择器通用选择器元素选择器类选择器语法:.classname例子:.container 匹配任何 class 属性中含有 “container” 类的元素。ID选择器语法:#idname例子:#view-containe 匹配 ID 为 “view-containe” 的元素。属性选择器分组选择器语法:A, B示例:input, label 会同时匹配 元素和 元素组合器后代组合器直接子代组合器一般兄弟组合器语法:A ~ B例子:p ~ span 匹配同一父原创 2021-10-23 23:19:25 · 167 阅读 · 0 评论 -
selenium自动化-下拉列表
selenium操作下拉列表select/option标签举个例子ul/li标签验证js是否能选中未显示的值结论python代码实现selenium自动化获取对象时,肯定会涉及到下拉列表,项目中遇到的下拉列表:通过select/option标签实现 或者ul/li标签实现,记录一下两种实现方式如何获取下拉列表的值select/option标签针对select标签类型的不能通过点击事件选择值,需要使用Select模块,其中有三种选中值的方式select_by_index(index):通过下标选择原创 2021-07-22 15:10:38 · 713 阅读 · 1 评论 -
docker镜像基础&通过Dockerfile制作镜像
docker镜像基础操作下载的镜像文件存储在 /var/lib/docker/iamge路径下,image id 是镜像的唯一标识docker images 显示本地所有镜像docker images -a显示本地所有镜像,包含中间映象层docker images mysql查找本地mysql镜像文件docker rmi mysql删除本地的mysql镜像文件docker images -q只返回镜像ID使用Dockerfile构建Tomcat镜像文件准备:centos7镜像文件、Tom原创 2021-07-02 17:40:48 · 276 阅读 · 0 评论 -
linux常用命令--用户查看/增删改/密码设置
查看用户所属组cat /etc/group:当前系统中所有的群组groups user或者id user:查看用户所属的组创建/修改用户组/用户useradd -g root abc:创建用户abc属于root组useradd abc:创建一般用户abc,会对应的创建一个abc用户组userdel abc:删除用户abcuserdel -r abc:删除用户abc,并删除其home目录和文件usermod -g root abc:修改abc用户所属组为rootusermod -aG te.原创 2021-07-08 11:00:43 · 471 阅读 · 0 评论 -
python函数的参数类型-默认参数、不定长参数、特殊参数
函数参数类型无参强制性参数默认参数不定长参数*varargs表示,元组类型导入**kwargs表示,字典类型导入特殊参数函数定义中单独使用 *,仅关键字参数函数定义中单独使用/,仅位置参数参数数据类型说明无参调用函数不需要传参def no_args(): '''无参数函数''' print("这是无参数函数")no_args() #调用输出:这是无参数函数强制性参数在调用函数时必须要填写的参数def mandatory_args(str): '''默认参数year取原创 2021-04-15 13:13:11 · 938 阅读 · 1 评论 -
UI自动化测试--xpath语法
验证环境:百度首页xpath:2.0版本工具:chrome的F12 ->elements中查询写好的xpath,显示匹配的元素,如图所示基础语法表达式描述/从根节点选取,绝对路径//从选择的当前节点选择,相对路径.选择当前节点…选择父节点@选择属性常用的使用实例1、选择有某属性的节点eg:选择有target属性的a元素//a[@target] 或者//a/attribute::target 2、选择不包原创 2020-12-24 17:01:08 · 724 阅读 · 1 评论 -
docker compose控制多个容器启动的优先级
作用一个系统由多个应用组成,每个应用对应一个容器,如果容器太多,都一个个去手动启动,操作会很繁琐,因此docker-compose就很好的解决了这个问题使用yaml格式文件定义容器间的关联,根据–link等参数对启动优先级进行排序,只需要执行docker-compose up即可启动多个容器安装docker-compose:下载在 /usr/local/bin/docker-compose目录下执行sudo curl -L "https://github.com/docker/compose原创 2021-07-07 00:42:19 · 3772 阅读 · 1 评论 -
好用的对比工具beyondcompare
beyond compare对比工具和linux服务器上的文件进行对比和ftp服务器上的文件对比和手机上的文件进行对比beyondcompare可以远程连接服务器,不用把文件拷贝到本地了,可以直接连接服务器访问文件和本地文件进行对比。和linux服务器上的文件进行对比点击浏览文件->选中FTP配置档->选中sftp协议,填写端口、登录服务器的用户名和密码即可访问到服务器上的根路径,然后选中需要对比的文件或者文件夹即可和ftp服务器上的文件对比操作同上,只需要协议选择ftp,输入对应的原创 2021-06-07 23:36:47 · 989 阅读 · 0 评论 -
python-set对象内置方法
list字符串setdicttuple原创 2021-06-06 20:00:19 · 174 阅读 · 3 评论 -
python-dict对象内置方法
items:返回字典对象key和value值的列表keys:返回字典对象key值的列表values:返回字典对象value值的列表get(key,default):获取字典对象key对应的value值,若不存在对应的key,则返回default,default默认值是Nonesetdefault(key,default):若字典存在key,则返回key对应的值,若不存在则设置key,default默认为None>>> d.items()dict_items([('a', 1),原创 2021-06-06 18:44:19 · 237 阅读 · 0 评论 -
python-tuple对象内置方法
tuple对象和list对象类似,可索引、切片,但是tuple不能修改,区别详见count(value):返回元组中value值的次数,若不存在value,则返回0index(value):返回元组中value值第一次出现的下表,不存在,则报valueError异常>>> t=("a","b","c","a")>>> t.count("a")2>>> t.count("b")1>>> t.count("e")0>原创 2021-06-06 18:43:34 · 124 阅读 · 0 评论 -
python-str对象内置方法
capitalize:将字符串的第一个字符转换为大写,返回一个新的字符串title:将字符首字母转为大写,其余小写,注意和capitalize区别casefold:将字符串都转为小写,返回一个新的字符串lower:将str对象中的字符转为小写,同casefold方法upper:将str对象中的字符转为大写swapcase:将str对象中的大写转为小写,小写字符转为大写>>> 'a bc'.capitalize()'A bc'>>> 'a bc'.title原创 2021-06-05 23:55:56 · 458 阅读 · 3 评论 -
python-list对象内置方法
append(object):list对象后追加对象(参数做为一个整体),返回一个listextend(iterable):参数必须是可迭代对象,将可迭代对象追加在list对象后>>> l=[1,3,5,"a","b","ab","b"]>>> l.append("c")>>> print(l)[1, 3, 5, 'a', 'b', "ab","b",'c']>>> L2=[4,5,6]>>> l.app原创 2021-06-05 23:28:05 · 233 阅读 · 0 评论 -
git常用命令
3、远端仓库克隆到本地仓库git clone “http://gitlab.thunisoft.com/prison-team/imp/imp-zfxx.git”git clone --progress -v “http://gitlab.thunisoft.com/prison-team/imp/imp-zfxx.git”git clone --progress -v “http://gitlab.thunisoft.com/prison-team/imp/imp-zfxx.git” “本地存放路径原创 2021-05-27 10:57:12 · 81 阅读 · 0 评论 -
python内置工具库之time模块&datetime模块
d原创 2021-05-25 13:01:40 · 134 阅读 · 0 评论 -
python之什么是装饰器,如何实现一个装饰器
闭包定义在函数内部的函数,对外部作用域的变量进行应用。闭包中不可以修改外部函数的局部变量作用:闭包执行完后,任然能够保持当前的运行环境闭包可以根据外部作用域的局部变量来得到不同的结果装饰器:不改变代码结构的情况下给代码添加新的功能将被装饰的函数当做参数传递给装饰器函数,并返回装饰后被装饰的函数函数的注释、函数名、注解、签名 会丢失对内部的函数添加@wraps装饰带参的装饰器装饰器可以是函数也可以是类装饰器可y...原创 2021-05-19 09:49:12 · 212 阅读 · 0 评论 -
python内置函数(三)
内置函数函数用途@property@classmethod@staticmethodenumerate(iterable, start=0)返回一个枚举对象filter(function, iterable)用 iterable 中函数 function 返回真的那些元素,构建一个新的迭代器,filter(function, iterable) 相当于一个生成器表达式,当 function 不是 None 的时候为 (item for item in原创 2021-05-14 23:40:48 · 85 阅读 · 0 评论 -
python内置函数(二)
内置函数函数用途len(X)max()min()zip(*iterables)创建一个聚合了来自每个可迭代对象中的元素的迭代器dir([object])open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)help([object])enumerate(iterable, star原创 2021-05-13 21:10:15 · 364 阅读 · 0 评论 -
python内置函数(一)
内置函数函数用途abs(x)返回一个数的绝对值pow(base, exp[, mod])返回 base 的 exp 次幂;如果 mod 存在,则返回 base 的 exp 次幂对 mod 取余round(number[, ndigits])返回 number 舍入到小数点后 ndigits 位精度的值sum(iterable, /, start=0)从 start 开始自左向右对 iterable 的项求和sum(iterable, /, start=0原创 2021-05-13 14:15:23 · 233 阅读 · 0 评论 -
robotframework使用变量文件的几种方式
1、yaml文件2、原创 2021-03-11 14:30:31 · 1215 阅读 · 0 评论 -
linux进程、系统资源使用情况查看相关命令
1、查看当前系统版本cat /etc/redhat-release 查看发行版本号getconf LONG_BIT 或者 uname -m 查看系统多少位[root@localhost home]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core)2、系统时间和时区相关查看日历:cal[root@localhost home]# cal March 2021Su Mo Tu We Th Fr Sa原创 2021-03-10 00:00:25 · 528 阅读 · 0 评论 -
linux常用命令--文件/目录权限设置/查找/增删改/打包解压
修改文件所属用户/权限改变文件所属群组:chgrp改变文件拥有者: chown改变文件权限:chmod这三各命令加上-R 参数可以递归修改整个文件夹[root@localhost test1]# ll -htotal 0drwxr-xr-x. 2 root root 6 Mar 3 10:27 test2drwxr-xr-x. 2 root root 6 Mar 3 10:33 test3[root@localhost test1]# chgrp -R es test2 #.原创 2021-03-07 16:43:12 · 367 阅读 · 0 评论 -
linux常用命令--系统版本/系统时间查看/设置
系统版本cat /etc/redhat-release :查看发行版本号getconf LONG_BIT 或者uname -m:查看系统多少位[root@localhost home]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core)系统时间date +%Y-%m-%d或者date +%F:显示当前时间,以年-月-日的格式date +%H:%M或者date +%R:显示当前时间和分钟,以 13:34的格式da.原创 2021-03-07 15:59:03 · 509 阅读 · 0 评论 -
postgresql数组查询
测试数据CREATE TABLE arr_test ( name text, color varchar[], size varchar[]);INSERT INTO arr_test VALUES ('adult_f','{"grey","black","white"}','{"s","m","l","xl","xxl"}'), ('adult_w','{"red","black","white","grey","blue"}','{"原创 2021-02-22 23:26:12 · 12685 阅读 · 0 评论 -
python类的属性&方法
_开头表示私有变量,但外部可以访问,最好__开头表示私有变量,外部不能访问__开头和结尾的,特殊变量,eg: init,name测试代码,创建一个文件名为variablescope.py,内容如下#coding:utf-8var_a=1 #当前模块的全局变量class A(): var_b=2 # 当前类可以访问 def __init__(self): self.var_c=3 #类实例化后可以访问 self._var_e=5 #_.原创 2021-02-22 12:46:45 · 201 阅读 · 0 评论 -
python格式化输出
占位符%会对输出的值转换为需要输出的类型,如果转换失败会报错%s输出字符串,%d输出数字,%%输出%var_1=123.1var_2='abc'var_3=(1,2,3)print("字符串:%s"%'abc')print("字符串:%s%%,\n输出换行"%var_1)print("输出多个变量:%d\n%s\n%s"%(var_1,var_2,var_3))输出结果:字符串:abc字符串:123.1%,输出换行输出多个变量:123abc(1, 2, 3)format—原创 2021-02-07 14:21:05 · 225 阅读 · 0 评论 -
实用软件测试方案设计
作用软件测试方案在实际的项目中很容易被忽略,而且被认为是可有可无的文档。我们都知道软件测试测试时软件质量保证的重要手段,通过测试可以法先软件中大多数的错误,而整个软件测试活动都依赖于软件测试方案对整个活动的规划。软件测试方案说明测试目标、测什么、如何测等,等同于软件设计文档说明开发什么功能、如何开发说明:以下主要是针对web系统的软件测试方案内容测试项目介绍测试目标各模块编写说明大致说明各模块应该如何编写软件质量特性:功能性:适应性、准确性、互用性、安全性可靠性:成熟性、容错性、原创 2021-02-07 10:55:25 · 549 阅读 · 0 评论 -
python基础数据类型序列-字符串、列表、元组、集合、字典的比较
文章目录符串、列表、元组、集合、字典对比数据操作索引----字符串、列表、元组切片----字符串、列表、元组相加/相乘----字符串、列表、元组相加相乘增加值----列表、字典、集合修改元素----字符串、列表、字典删除元素 ----列表、集合、字典排序sorted ----字符串、列表、集合、元组、字典比较集合求差集、交集、并集并集交集差集数据转换:字典格式的字符串/ json对象转为字典两个列表/元组/集合 转为字典字典转为列表/元组/集合嵌套的列表/元组/集合转为字典符串、列表、元组、集合、字典对比原创 2021-01-18 22:47:46 · 1061 阅读 · 0 评论 -
数据迁移测试总结
一、适用场景 将A系统中的数据迁移到B系统中,对迁移的数据进行完整性、一致性、可用性的验证二、 测试前需要了解了解需要迁移的数据范围,比如时间范围、哪些模块要迁移清楚迁移数据是一次性的全量迁移,还是会涉及到增量迁移迁移数据的方法,是通过什么方式来进行迁移的三、根据迁移方案制定测试方案 在迁移方案制定过程要也要参与到其中,一方面是为了验证迁移方案是否合理,另一方面是为了能制定出合理的测试方案和测试计划以下以某某省旧业务系统迁移到新业务系统为例(从SQLserve原创 2021-01-11 17:55:10 · 1322 阅读 · 0 评论 -
利用jenkins的windows从节点,实现selenium自动化脚本在windows上执行
目的在Jenkins服务上,项目构建成功后自动执行编写好的selenium脚本。Jenkins服务是搭建在Linux服务器上,由于需要测试IE浏览器上执行的结果,因此考虑在Jenkins服务中配置nodes实现环境准备Linux服务器一台,搭建好Jenkins服务,安装allure插件(编写的自动化脚本生成报告使用的allure框架)windows服务器一台,搭建好python环境、allure运行环境搭建web应用的服务其一台,根据项目需要linux或者Windows服务均可以配置Jenkin原创 2020-10-07 22:13:38 · 611 阅读 · 1 评论