自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 接口自动化学习四:全量字段校验

整个json数据是一个对象,包含success、code、message字段,并且是必填字段,success是布尔类型,code是整数,message是字符串类型。properties:定义待校验json对象中,各个key-value中对value的限值条件。required:定义待校验json对象中,必须存在的key。校验接口返回响应结果的全部字段(更进一步的断言)。const:json元素必须等于指定内容。1.定义 校验规则(json语法)type:表示待校验元素的类型。4. 校验通过:返回None。

2025-04-04 15:48:07 222

原创 接口自动化项目实现思想

api:定义封装被测接口(接口对象层 py文件夹)scripts:定义测试用例脚本(测试脚本层 py文件夹)data:存放测试数据文件(测试数据文件 文件)report:存放生成的测试报告(文件)common:存放通用工具类config.py:配置的全局变量pytest.ini:pytest配置。

2025-04-04 10:34:59 645

原创 接口自动化学习三:参数化parameterize

参数化:@pytest.mark.parametrize(“a,b,expect”,[(),()…数据来源于json文件的话,需要对其进行处理。参数2必须要求是[(),()…

2025-04-03 22:29:56 167

原创 接口自动化学习二:session自动管理cookie

session存储在服务器端,服务器是一台主机,因此几乎支持所有的数据类型。session存储在服务器端,采用加密、转码形式存储,安全性较高。cookie存储在浏览器端,可以任意获取,没有安全性可言。cookie存储在浏览器端,支持的测试数据受浏览器限值。session直接使用服务器存储,没有大小限制。cookie默认大小4k(可调,但不大)session存储在服务器端。cookie存储在浏览器端。

2025-04-03 16:33:22 180

原创 接口自动化学习一:requests方法使用

【代码】接口自动化-requests方法使用(一)

2025-04-03 16:33:11 69

原创 数据库增删改查语句封装成工具类

将数据库常用操作(增删改查),封装成类中的方法。将来使用的时候,只需提供要执行的sql,给这个方法,即可执行。

2025-04-03 15:32:40 139

原创 模拟器和电脑端adb版本不一致解决办法

5.将adb复制下,粘贴到模拟器所在目录下;(做这一步之前,先将模拟器自带的adb重命名或者删掉),将复制的adb版本名称修改为。2.查看模拟器的adb版本 cmd切换至模拟器bin目录,输入。重新查询模拟器的adb版本,发现和电脑端adb版本一致了。window电脑和模拟器的adb版本不一致,如何解决?3.要找到电脑端的adb在哪个目录下;1.查看自己电脑的adb版本;4.打开adb所在目录;

2024-02-26 13:59:44 986 2

原创 【Appium UI自动化】Pycharm+Python执行录制的代码

Appium上面录制的代码,在pycharm上运行,python有两个框架,pytest和unittest,经常搞混了,导致代码运行报各种错误。下面记录的这个,运行后,没有报错。以网易云音乐app为例。

2024-02-22 17:33:49 284

原创 【Appium UI自动化】pytest运行常见错误解决办法

解决办法:类名后面参数忘记传unittest.TestCase参数了,所以setUp()方法相当于没有执行,没有初始化driver参数;2.运行代码,提示信息:找不到属性driver,但是属性已经初始化了。1.提示 setup() 方法运行 error failed。.py文件就解决了。

2024-02-22 17:27:58 687

原创 【UI自动化】使用poco框架进行元素唯一定位

a1=poco(text=‘名称’).parent().parent().child()[11].child()[1].child()[0]a=poco(text=‘名称’).parent().parent().child()[11].child()[0].child()[0],需要【向下寻遍历】和【向上遍历】结合起来使用;并且同一次用位置信息打印时,使用相对选择+空间选择进行唯一定位页面上元素时,有时候会出现。,否则打印出来的元素的位置信息会出现变化。今天主要想记录下相对选择是怎么做的。

2024-02-21 13:13:48 1167 1

原创 Appium报错:无法打开appPackage

报错信息说参考:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md ,链接地址变了,找到了这个地址:https://github.com/appium/appium/blob/1.x/docs/en/writing-running-appium/android/activity-startup.md。

2024-02-07 16:52:54 269

原创 Appium使用初体验之参数配置,简单能够运行起来

连接微信app,platformName:平台(必填,android/ios),deviceName(必填,但是值不重要,随便填一个即可),appPackage和appActivity(必填,获取当前要测试app的包名以及活动名),autoGrantPermissions(非必填,自动获取一些权限)Remote Path:地址(?),其中地址默认配置/wd/hub即可。云服务器都是国外的,我们基本用不上,任意选择一个就行。之前,必须先连接上手机,手机打开。没有用到,可以不用勾选。

2024-02-07 14:59:14 1538

原创 UI自动化之Poco常用断言方式

【代码】UI自动化之Poco常用断言方式。

2024-02-07 11:16:05 1030

原创 Appium问题及解决:打开Appium可视化界面,点击搜索按钮,提示inspectormoved

搜索了之后发现,由于高版本Appium(从1.22.0开始)的服务和元素查看器分离,所以还需要下载Appium Inspector。填写appium:platformName,appium:platformVersion,appium:deviceName(deviceName通过cmd输入adb devices获得)等信息。查看了我下载的Appium版本,发现是2.1.3版本,挺高的。所以需要下载Appium Inspector,

2023-10-08 09:09:07 1389 1

原创 【移动端测试工具】Appium自动化测试工具安装与配置

(3)高级环境变量配置,环境变量,点击【用户变量】的【Path】,找到最下面的这一行配置,将其替换为新增的【node_global】文件所在的目录。在命令行输入:pip install Appium-Python-Client -i http://pypi.douban.com/simple。下载地址:https://github.com/appium/appium-desktop/releases。(1)找到安装的目录,在安装的目录下创建两个文件夹[node_cache]和[node_global]

2023-09-27 17:36:50 662

原创 谷歌浏览器关闭自动更新功能

背景:自动化测试需要下载webdriver驱动,然而浏览器自动更新会导致原来的驱动版本与现有浏览器版本不匹配,所以要禁用掉浏览器自动更新功能。1.右键-我的电脑-打开管理;2.选择任务计划程序-任务计划程序库-找到两个chrome自动更新的任务计划GooleUpdateTaskUserS-…500Core和GooleUpdateTaskUserS-1…500UA,然后右键禁用。

2023-09-21 19:51:54 568

原创 【自动化测试】如何下载安装webdriver

(1)将下载的webdriver放到下载python的Scripts目录下,我的目录是这个:C:\Users\Administrator\AppData\Local\Programs\Python\Python39\Scripts\,试了启动后还是没有生效,然后采用第二种配置环境变量的方法。像我的版本117.0.5938.89,下载的驱动的版本为117.0.5938.88,也是适用的。发现我的浏览器版本已经升到了最新的版本,我参照这个链接,下载了最新版本的驱动,将webdriver放到该路径下。

2023-09-21 13:28:25 2789

原创 mysql+jdbc+servlet+java实现的学生在校疫情信息打卡系统

摘 要 I主 要 符 号 表 i1 绪论 11.1 研究背景 11.2 研究目的与意义 21.3 国内外的研究情况 21.4 研究内容 22 系统的开发方法和关键技术 42.1 开发方法 42.1.1 结构化开发方法 42.1.2 面向对象方法 42.2 开发技术 42.2.1 小程序开发MINA框架 42.2.2 微信开发者工具 42.2.3 Java语言与JDK开发环境 52.2.4 MySQL数据库 52.2.5 HTML语言 5。

2023-08-20 20:33:18 403

原创 写给自己:入职两个月的收获与变化

到今天为止,正式入职已经两个月,加上之前已经实习了两个多月,快5个月,想想这5个月的变化,之前实习的时候,自己的成长其实挺慢的,不论是工作上还是个人心理上的变化,可能也是因为实习的人太少了,在我到来之前,大办公室只有一个女生,来到陌生的环境,前一个月都在适应环境,工作上,我师傅给我分配的任务不多,或许在他们看来挺简单的事情,我都难以理解,当时实习那段时间挺崩溃的,但是幸亏也经历了之前的两个多月实习,现在的我有信心独立负责一个项目,也慢慢的摸索出了自己的工作步调。risk:存在的风险有什么?

2022-09-10 17:40:27 904 2

原创 初学者之如何快速获取微信小程序源码

最近玩了好多小程序的游戏,自己也想着能不能自己把它下载下来,能不能通过改一些数据让自己直接成为最强的呢。然后自己也看了好多大佬分享的博客,也自己总结一下自己反编译过程中遇到的一些问题。1.下载node.js https://nodejs.org/en/验证是否安装成功:cmd中输入:npm -v成功的话会打印版本号。2.下载编译脚本链接:https://pan.baidu.com/s/1InxRoozDDb-C-g2rKGi1Cw提取码:i50k看网上好多都是来自一个博主的github上

2021-12-11 18:33:17 5142 8

原创 Python列表、元组、字典,集合

一、列表:列表的格式:一组容器:存储多个数组定义一个列表:1.空列表:[] list1=[] print(type(list1))2.列表里面有内容:list2=[“ss”,‘A’,‘B’,8.9]3.列表里面可以嵌套列表:[[],[],[]]获取列表里面的元素:可以通过索引或者下标来进行获取list1=[‘辣条’,‘面包’,‘臭豆腐’]print(list1[1])切片:list1[:2]列表的添加:1.append 2. extends列表的删除:1.d

2021-11-08 12:05:01 397

原创 python模拟王者荣耀创建角色以及修改角色

王者荣耀角色管理:角色的属性:姓名,性别,职业实现的功能:1.添加角色2.删除角色3.修改角色4.查询角色(单个角色)5.显示所有角色6.退出系统在此过程中没有与数据库进行连接,创建的新角色无法保存,在关闭编译器之后,无法再次看到之前已经创建的角色,后续再对此进行修改。import timeall_role = [] # 存放所有角色的容器print('---------欢迎进入王者荣耀角色管理系统---------')while True: choice = inpu

2021-11-08 11:48:43 3517

原创 python基础入门小结(1)

一、Python基础1.Python如何命名:变量:就是一个容器弱语言:变量声明的时候对数据类型不是很严格格式:变量名=值怎么起名?赋什么值?有什么数据类型?变量名的命名规范:只能是字母,数字,下划线,且不能以数字开头,其他特殊符号不可以不能使用关键字,严格区分大小写以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。以双下划线开头的 __foo 代表类的私有成员,以双下

2021-11-08 11:11:18 592

原创 搜索引擎项目

我们经常使用各种浏览器进行搜索,百度,谷歌,火狐等等,

2021-09-01 17:02:26 660

原创 二叉树的前中后序遍历,层序遍历,深度遍历代码实现(递归和非递归)

文章目录如何构建一棵二叉树二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历二叉树的层序遍历(BFS)二叉树的深度遍历(DFS)测试代码如何构建一棵二叉树我们输入一个数组,构成二叉树的形式,然后进行前中后,层序,深度遍历;package Tree;import java.util.LinkedList;import java.util.Queue;public class TreeNode{ int val; TreeNode left; TreeNode right;

2021-08-09 09:15:57 255

原创 数据驱动ddt的简单使用

什么是数据驱动当我们的测试脚本都是重复的,只有输入的数据变化时,每次更换一个数据执行,都要写一个测试脚本,这样会使我们的代码显得特别乱,特别冗余。这时我们可以使用数据驱动,只用写一个脚本,在驱动我们的脚本执行的时候,不断更新数据,这就是数据驱动。unittest测试框架下面没有数据驱动,所以在使用unittest框架的时候,还要使用数据驱动,就必须先下载安装ddt。在cmd中先检查之前有没有下载过数据驱动:pip show ddt当显示show 不是内部命令的时候,可以使用pip.exe sho

2021-08-07 13:55:34 796

原创 初学unittest测试框架

文章目录unittest测试框架包括哪几部分组织测试用例执行组织测试套件添加断言忽略用例的执行HTML报告输出unittest测试框架包括哪几部分unittest是Python的单元测试框架,其中包括创建测试用例,测试套件,测试固件,执行测试,以及可以输出基于Html的测试报告。当我们安装Python之后,里面就包含了这个单元测试框架,使用的时候,直接import unittest就可以直接使用了。unittest各部分组成:TestCase:单元测试用例,TestCase是一个类,使用TestC

2021-08-06 18:28:14 397 2

原创 selenium中WebDriver常用API

元素的定位:元素的定位是自动化测试的核心,要想操作一个对象,首先必须识别它。对象和我们人一样,自身具有许多的属性,我们可以通过身份证,姓名,楼牌号,街道这些属性找到对应的某个人,所以操作对象也是一样的,根据对象的一些属性也可以找到这个属性。webdriver 提供了一系列的对象定位方法,常用的有以下8种方法:id 可以保证全局唯一nameclass namelink textpartial link texttag namexpath 可以保证全局唯一css selector但是

2021-08-05 15:08:14 640

原创 自动化测试selenium1.0和selenium 2.0

什么是自动化测试?自动化测试就是让机器 按照设定好的条件或者步骤去执行,条件或者步骤就是我们写好的脚本,也就是将人为驱动的测试行为转化为机器测试的过程。自动化测试的分类:UI自动化 – 适用于项目比较稳定,此时代码利用率比较高;界面要稳定,此时定位界面元素的时候才能准确定位;在项目后期需要做UI自动化测试的项目;用例维护量大的项目。接口自动化 – 适用于项目前期就可以介入,测试用例维护的比较少,接口变动小,界面变动频繁的项目。性能自动化是不是所有的项..

2021-08-03 17:53:12 405

原创 微信发红包测试用例

打开微信发送红包界面进行设计测试用例,设计测试用例从功能、性能、安全性、易用性、兼容性、界面方面进行设计测试用例。界面:1.界面按钮、输入框大小是否合理;2.发送、抢完红包界面是否有错别字;3.发送红包、接受红包界面颜色搭配是否合理;功能:1.发红包的钱数和个数的输入框中,只能输入整数;2.红包里最多和最少可以发送的金额;3.拼手气红包数量限制(最多100个),并且要保证每个人抢的钱数不一样;4.当红包金额超过最大范围是否有提示;5.当发送的红包数量超过最大范围是否有提示;6.当余额不

2021-04-21 23:51:43 4204 1

原创 酷家乐、阿里、字节-一天面三家

记录一下自己这个小菜鸟的面试,人总要经历这个过程,从开始的写简历,到不断完善,总结复习项目,投递简历,到现在大大小小的公司也投递了不少。真的还记得自己第一次投递简历收到hr的电话的时候,那是我还在图书馆,怀着无比激动的心情,颤抖的双手,紧张又充满刺激,从此开始真正踏上了这一条不归路,但是也只能勇往直前,毕竟没有伞的孩子更要努力奔跑嘛。第一面:阿里巴巴1.首先简单介绍了一下自己2.输入一个URL后发生了什么3.TCP/IP四层模型4.线程和进程的区别,项目中哪些模块是进程级别,那些是线程级别5.J

2021-04-10 16:47:22 1787 5

原创 垃圾回收器分类 -Java

常见的垃圾回收器都有哪些?连线的两个垃圾回收器说明可以相互搭配使用。

2021-03-28 22:47:28 261 3

原创 常用垃圾回收算法

文章目录一、System.gc()用法二、区分开finalize()、finally、final的区别三、垃圾回收策略1. 引用计数算法2.可达性分析算法3.垃圾回收主要区域四、垃圾回收算法五、垃圾回收的过程六、内存分配与回收策略一、System.gc()用法调用这个方法,只是建议JVM进行FGC(Full GC),只是建议JVM来进行回收垃圾,但很多情况下并不会触发FGC,只是增加FGC的频率。二、区分开finalize()、finally、final的区别1.finalize()方法:当JVM确

2021-03-28 21:16:21 859 1

原创 强引用、软引用、弱引用、虚引用的区别 -Java

Java中为何要分别定义强引用、软引用、弱引用、虚引用四种引用类型?我们对于对象的定义不能只局限于“引用”和“未被引用”两种状态,因为我们还存在几种引用类型能描述这样一类对象:当内存空间还足够时,仍保留在内存之中,如果内存空间在进行垃圾收集后仍然非常紧张,那就可以抛弃这些对象(这类对象应用在很多系统的缓存功能上)。在JDK 1.2版之后,Java对引用的概念进行了扩充,将引用分为强引用(Strongly Re-ference)、软引用(Soft Reference)、弱引用(WeakReference)

2021-03-27 11:18:09 555 6

原创 JVM内部结构

Java程序是怎样被运行起来的?1.类存放在方法区;2.类创建的对象在堆中;3.堆中对象调用方法时,会使用到虚拟机栈、本地方法栈、程序计数器;4.方法执行时每行代码由解释器逐行执行;5.热点代码由JIT编译器即时编译;6.垃圾回收机制回收堆中资源;7.和操作系统打交道需要调用本地方法接口。程序计数器:(线程私有)JVM中的一小块内存一行JVM指令----->解释器----->机器码----->CPU在执行JVM指令的过程中,由程序计数器来标记当前线程执行的字节码的行号

2021-03-26 09:36:28 250 2

原创 类加载器 -双亲委派模式

我们首先了解了类的加载过程,主要有5个阶段:加载—验证—准备—解析—初始化。那么什么是类加载器呢?类加载器:首先我们写好的 .java文件经过编译后会形成 .class字节码文件,然后类加载器将.class文件加载为class模板,并可以通过new关键字创建实例对象,实例对象可以通过getClass方法获取class模板,class模板可以通过getClassLoader方法获取类加载器。类加载器:主要有四种:启动类加载器、扩展类加载、应用程序类加载器、自定义类加载器这四类类加载的关系为:

2021-03-25 20:56:48 269

原创 寻找二叉树的下一个节点-java

题目:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。解题思路:首先把中序遍历的结果显示出来。—根 左 右中序遍历后的结果为:DNH B IEJ A FK C LGM从这个结果来分析中序遍历后的下一个节点情况:1、二叉树为空,返回空;2.有右子树的情况:其下一个节点就是其右子树的最左边的节点,一路向下寻找当前节点的右子树的最左边的节点。3.没有右子树的情况:分为两种情况情况一:当前节点是其父节点

2021-03-25 10:48:24 293 3

原创 类加载过程描述 -java

在java中,一个变量存在创建、使用到销毁的过程,关于类的创建,使用,销毁过程,肯定也存在类似的生命周期。java中类的生命周期一般包括这么几部分:类加载阶段只是前5个阶段: 加载,验证,准备,解析,初始化,但是解析这个阶段的位置不是固定的,因为java中还存在着动态绑定。什么叫做java的类加载机制?Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换、解析和初始化,最终形成可以被虚拟机直接使用的Java类 型,这个过程被称作虚拟机的类加载机制。1.加载阶段:1)通

2021-03-24 17:34:56 336 3

原创 Synchronized锁机制-java

synchronized是一种原子性内置锁,就是用C++写的,我们看不到其里面的源码,他就是一组指令,我们可以使用这个指令来实现对对象的加锁操作。对象锁(monitor)机制:

2021-03-24 16:16:24 352 2

原创 synchronized加锁之如何查看对象头

最近学习java中多线程如何加锁保证线程安全,讲解的synchronized关键字,加锁操作,可以保证线程安全,但是对于加锁是如何就实现了线程安全还是一头雾水。不管是书上还是博客上讲的最多的就是,synchronized是给对象头枷锁,同一个对象加锁的线程同步互斥。语法:(1)同步代码块;(2)同步方法。但我连什么是对象头都不知道。synchronized是一种原子性内置锁,就是用C++写的,我们看不到其里面的源码,他就是一组指令首先我们要知道java有哪些锁?偏向锁,自旋锁,独占锁,共享锁,轻量级锁

2021-03-24 11:13:27 818 3

python命名规则示例

python命名规则示例

2023-08-20

空空如也

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

TA关注的人

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