- 博客(83)
- 收藏
- 关注
原创 selenium学习
自动化测试如何定位页面上的元素获取文本的内容添加等待、清除clear()浏览器的后退、前进、滚动、窗口大小、最大化如何定位页面上的元素定位页面元素的原则:元素的属性是全局唯一的获取页面元素的方式不是唯一的、但是获取元素时候要确保元素的属性是全局唯一的from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get("https://www.baidu.com/")# 通过id找到页面的元素drive
2021-09-03 22:34:01
467
2
原创 初始Selenium
自动化测试Selenium示例selenium webdriverselenium IDESeleniumSelenium是针对Web应用的开源自动化测试工具,通过编写模拟用户操作的脚本,它会打开浏览器对Web应用进行黑盒测试。可以方便的用于功能测试、兼容性测试、 稳定性测试及并发测试。目前已被主流浏览器厂商广泛支持,同时也是很多其它自动化测试工具(比如,RobotFramework)的底层核心技术。Selenium由IDE、Remote Control(简称RC)、WebDriver、Grid四个工程
2021-09-02 23:28:47
3894
原创 自动化测试
自动化测试自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。常见的自动化测试工具:QTP、selenium、Rational Robot 、jmeter、appium、soapui、Loadrunner等等selenium 是一个web 的自动化测试工具,相因为它相比QTP有诸多优点:免费,也不用再为破解QTP 而大伤脑筋小巧,对于不同的语言它只是一个包而已,而QTP 需要下载安装1个多G 的程序。
2021-09-02 21:43:49
3528
原创 Java实现阻塞队列、简易线程池、计时器
Java实现阻塞队列、线程池、计时器Java实现阻塞队列、简易线程池、计时器Java实现阻塞队列、简易线程池、计时器package demo0821;import java.util.ArrayList;import java.util.List;import java.util.concurrent.*;/** * user:ypc; * date:2021-08-21; * time: 9:12; */public class Main { static class B
2021-08-21 19:43:55
219
原创 将数据库中查询的信息显示在tbale中
Vue学习笔记结果代码结果数据库中的信息接口sqlcontroller中的对应方法js代码代码 init(){ jQuery.getJSON("/user/ulist",{}, function (data) { if (data != null && data.data != null){
2021-08-13 18:13:18
132
原创 Vue将List中对象的元素赋值到table对应位置中
Vue学习笔记代码结果代码<body><div id="app" style="text-align: center;background-color: yellow;text-indent: 20px"> <v-simple-table v-show="true"> <template v-slot:default > <thead> <tr style="bac
2021-08-13 17:32:34
1228
原创 Vue学习笔记
Vue学习笔记使用 v-html 指令用于输出 html 代码HTML 属性中的值使用 v-bind 指令。v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。参数在指令后以冒号指明。例如, v-bind 指令被用来响应地更新 HTML 属性:v-model 指令来实现双向数据绑定使用 v-html 指令用于输出 html 代码<div id="app"> <div v-html="message"></div>
2021-08-13 16:19:18
235
1
原创 AOP术语、SpringAOP
AOP术语、SpringAOPAOP中的相关术语SpringAOP中的实现Spring对AOP的支持示例切点表达式、切点切面增强通知织入目标对象结果AOP中的相关术语官方Aspect: A modularization of a concern that cuts across multiple classes. Transaction management is a good example of a crosscutting concern in enterprise Java applicat
2021-08-09 23:10:49
253
2
原创 使用JavaScript从当前URL的QueryString中获取指定的参数
使用JavaScript从当前url的QueryStrng中获取指定的参数代码逻辑测试代码function getParamValue(urlkey) { var param = location.search; param = param.substring(1); var paramArr = param.split("&"); // alert(paramArr); for (var i = 0; i < paramArr.length; i+
2021-08-08 23:40:40
1028
2
原创 sql注入、Mybatis中的#{参数}和${参数}
sql注入、Mybatis中的#{参数}和${参数}sql注入概述:mybatis中的#{参数} 和 ${参数}sql注入解决方案#{参数}和${参数}总结sql注入概述:针对SQL注入的攻击行为可描述为:在与用户交互的程序中(如web网页),非法用户通过可控参数注入SQL语法,将恶意sql语句输入拼接到原本设计好的SQL语句中,破坏原有SQL语法结构,执行了与原定计划不同的行为,达到程序编写时意料之外结果的攻击行为,其本质就是使用了字符串拼接方式构造sql语句,并且对于用户输入检查不充分,导致SQL
2021-08-08 23:02:24
897
2
原创 JDBC、ORM、Mybatis初识
JDBC、ORM、Mybatis初识传统的JDBC操作JDBC存在的问题解决方案ORM主流的 Java ORM 框架传统的JDBC操作Java 语言中对于数据库操作的原始方式,即通过 JDBC 来操作数据库,步骤几乎都比较固定,以下为语法层面的步骤????创建数据库连接池 DataSource通过 DataSource 获取数据库连接 Connection编写要执行带 ? 占位符的 SQL 语句通过 Connection 及 SQL 创建操作命令对象 Statement替换占位符:指定要替
2021-08-06 22:23:07
1234
13
原创 SpringMVC中单元测试中事务的使用
SpringMVC中单元测试中事务的使用如果想要对我们业务中的某个模块进行测试的话、那么我们就可以使用单元测试来对我们的业务方法进行测试????比如我们要对当前的添加用户的方法进行测试、右击点击Generate、生成对应的单元测试的方法、选中我们要测试的方法????但是进行单元测试的时候、会在对数据库进行更改、也就是污染数据库????点击运行、就会在数据库中看到对应的记录????也会得到对应的结果????那么如何做到不污染数据库、但是又能得到我们需要的测试的结果呢?????这就
2021-08-06 20:21:17
215
原创 7、13、34
剑指offer剑指 Offer 07. 重建二叉树剑指 Offer 13. 机器人的运动范围剑指 Offer 34. 二叉树中和为某一值的路径剑指 Offer 07. 重建二叉树class Solution7 { public int pIndex; public TreeNode buildTreeChild(int[] preorder, int[] inorder, int begin, int end) { if (begin > end)
2021-08-05 22:56:57
103
2
原创 SpringMVC中的用户自定义配置
SpringMVC中的用户自定义配置自定义后端路径映射自定义Controller拦截器SpringBoot中使用SpringMVC非常方便,SpringBoot提供了大部分的MVC默认功能,并且需要自定义某部分功能也非常方便,在配置类中实现 WebMvcConfigurer 接口,根据需要重写方法即可自定义后端路径映射重写 configurePathMatch 方法,实现时,可以添加统一的服务路径前缀:此时所有定义的服务路径都要在前面加上 /api 再能访问,如 /mvc/index1 现在应该访
2021-08-05 19:59:16
175
6
原创 SpringMVC中的常用注解
SpringMVC中的常用注解SpringMVC中的常用注解使用注解实现简单的登录SpringMVC中的常用注解@Controller@Controller注解标注是一个类是Web控制器,其和@Component注解等价,只不过在Web层使用,其便于区分类的作用。@RequestMapping@RequestMapping是Spring Web应用程序中最常被用到的注解之一。在对SpringMVC进行配置的时候,需要指定请求与处理方法之间的映射关系,这时候就需要使用@RequestMap
2021-08-04 23:01:19
3601
25
原创 MVC设计模式
MVC设计模式MVC设计模式MVC设计模式优点MVC设计模式缺点MVC设计模式MVC(Model View Controller)是软件工程中的一种软件架构模式,它把软件系统分为模型、视图和控制器三个基本部分。Model (模型端)Mod封装的是数据源和所有基于对这些数据的操作。在一个组件中,Model往往表示组件的状态和操作这些状态的方法,往往是一系列的公开方法。通过这些公开方法,便可以取得模型端的所有功能。在这些公开方法中,有些是取值方法,让系统其他部分可以得到模型端的内部状态参数,其他
2021-08-04 19:31:14
339
2
原创 源码之ConcurrentHashMap
源码之ConcurrentHashMap初始化put方法相关源码(JDK1.8)总结初始化核心成员变量和HashMap是类似的(可以看我的这篇)、ConcurrentHashMap是HashMap的线程安全版本(Collections.synchronizedMap、Hashtable也是HashMap线程安全的版本)。初始的容量要是2的次幂:1.如果数组的长度是2的次幂的话、那么在进行取模的运算的时候、就可以使用位运算来代替%:2.如果数组的长度是2 的次幂的话、那么在扩容的时候(扩容也
2021-08-03 23:51:59
389
4
原创 SpringBoot中的日志
SpringBoot中的日志日志的内容日志的配置日志的级别日志的内容默认的SpringBoot 中的日志的信息中包含的内容时间日期:精确到毫秒日志级别:ERROR、WARN、INFO、DEBUG 、TRACE进程ID分隔符:— 标识实际日志的开始线程名:方括号括起来(可能会截断控制台输出)Logger名:通常使用源代码的类名日志内容日志的配置#开启debug模式的日志打印debug=true#日志保存的路径配置logging.file.path=logs/#设置每个文件
2021-08-03 13:19:33
299
原创 18、31、32I、32II、32III、24
剑指offer剑指 Offer 18. 删除链表的节点剑指 Offer 24. 反转链表剑指 Offer 31. 栈的压入、弹出序列剑指 Offer 32 - I. 从上到下打印二叉树剑指 Offer 32 - II. 从上到下打印二叉树剑指 Offer 32 - III. 从上到下打印二叉树剑指 Offer 18. 删除链表的节点 public ListNode deleteNode(ListNode head, int val) { if (head == null)
2021-08-02 23:14:56
255
原创 Bean的生命周期
Bean的生命周期总结示例总结1.Spring启动,查找并加载需要被Spring管理的bean,进行Bean的实例化2.Bean实例化后对将Bean的引入和值注入到Bean的属性中3.如果Bean实现了BeanNameAware接口的话,Spring将Bean的Id传递给setBeanName()方法4.如果Bean实现了BeanFactoryAware接口的话,Spring将调用setBeanFactory()方法,将BeanFactory容器实例传入5.如果Bean实现了Applicat
2021-08-02 19:05:26
170
4
原创 Bean的作用域
Bean的作用域SingletonprototyperequestsessionapplicationwebsocketBean 的作用域就是指bean的类型。Singleton官方说明:(Default) Scopes a single bean definition to a single object instance for each SpringIoC container.描述:该作用域下的Bean在IoC容器中只存在一个实例:获取Bean(即通过applicationContext.
2021-08-02 11:20:49
1144
16
原创 28、36、68
剑指offer剑指 Offer 28. 对称的二叉树剑指 Offer 36. 二叉搜索树与双向链表剑指 Offer 68 - II. 二叉树的最近公共祖先、剑指 Offer 68 - I. 二叉搜索树的最近公共祖先剑指 Offer 28. 对称的二叉树 //1. public boolean isSymmetric(TreeNode root) { if (root == null) return false; return isSymmetricHelpe
2021-08-01 22:33:04
78
原创 进程、线程
进程、线程为什么会有进程进程的概念线程Java中线程六种实现方式进程和线程的区别为什么会有进程在简单的批处理操作系统中,作业时串行执行的,即一个作业一旦开始执行,它就会计算机系统的所有资源,直到运行结束之后,下一个作业才可以继续执行。在多 道程序设计批处理的系统中,多个作业可以被载入内存,从宏观上看,多个作业并行执行,他们共享处理器、内存等计算机资源。进程的概念线程Java中线程六种实现方式进程和线程的区别...
2021-08-01 13:32:45
379
10
原创 26、29、35
剑指offer剑指 Offer 26. 树的子结构剑指 Offer 29. 顺时针打印矩阵剑指 Offer 35. 复杂链表的复制剑指 Offer 26. 树的子结构思路一就是递归啊、不必将递归想的太清楚、交给系统的堆栈去完成????、首先要判断两棵树是不是相等的:如果当前的B的节点的值等于A节点的值的话、那么就分别去看B的左和A的左是不是相等、看B的右和A的右是不是相等、直到B为null的时候、说明A和B两棵树相等、如果中途A走完或者A的值不等于B的值的话、那么返回false。B是A的子树就是要把A
2021-07-31 23:33:55
308
5
原创 浏览器中输入URL后发生了什么?
浏览器中输入URL后发生了什么?DNS域名解析使用IP协议、ARP协议、OSPF等协议将消息上传到服务器上客户端和服务端建立连接客户端发送HTTP请求服务端响应HTPP请求浏览器解析html代码,并请求HTML代码中的资源断开TCP连接浏览器对页面进行渲染呈现给用户在浏览器中输入URL后,执行的全部过程、也就是一次http请求的过程DNS域名解析1.DNS域名解析协议DNS协议的产生主要是IP地址不便记忆,在TCP/IP协议中、起初有一个叫做主机识别码的机制,这种的识别的方式指的是为每一台计算机都
2021-07-31 18:16:00
3904
27
原创 Spring中bean的获取
Spring 中bean的获取1.通过context.getbean 的方式来获取beanApplicationContext:是spring继BeanFactory之外的另一个核心接口或容器,允许容器通过应用程序上下文环境创建、获取、管理bean。也就是Spring中的所有的bean都是在这里管理的。那么通过可以通过context.getbean 的方式来获取bean的时候、如何填写要获取的bean的名字呢?也就是spring容器如何给注册到容器中的bean命名呢?AnnotationBea
2021-07-31 11:57:06
1674
3
原创 Java内存模型对并发处理的三个特性
JVM(四)原子性可见性有序性从上文的有关JMM的介绍、可以知道Java内存模型对并发的处理都围绕在三个特性—>原子性、可见性、有序性。原子性Java内存模型直接保证的原子性变量的操作包括read、load、assign、use、store、write.我们可以认为基本数据类型的访问、读写都是具有原子性的(除了long 和 double 的非原子的协定)。如果一个场景需要的是更大范围的原子性的保证、JMM还提供了lock和unlock操作来满足这种需求、但是JVM并未将这种操作直接开放给用户,
2021-07-30 22:58:58
122
2
原创 初始Spring
Spring为什么要使用SpringSpring概述Spring容器使用流程为什么要使用SpringWhy Spring?Spring makes programming Java quicker, easier, and safer for everybody. Spring’s focus on speed,simplicity, and productivity has made it the world’s most popular Java frameworkSpring概述Sprin
2021-07-30 13:11:16
149
原创 Java内存模型
JVM(三)Java内存模型指的是JMM(Java Memory Model)、是Java虚拟机规范中定义的一种模型、试图屏蔽硬件和操作系统的内存的访问差异的,为了让Java程序在各种的平台达到一致的内存访问效果。Java内存模型的主要的目的就是定义程序中的各种变量的访问的规则的、也就关注的是在虚拟机中将变量存储在内存中、和从内存中取值的细节。这里的变量指的是实列字段、静态的字段、构成数组对象的元素。不包括局部的变量和方法参数、因为这些都是线程私有的。JMM规定了所有的变量存储在主内存中、每个线程都有
2021-07-29 22:56:39
119
14
原创 使用Bootstrap实现简单的主页
Bootstrap的使用效果未登录时代码登陆后代码效果未登录时页面:点击登录登录之后未登录时代码<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="wi
2021-07-29 21:17:33
1251
13
原创 软件测试有关概念
黑盒测试、白盒测试、灰盒测试、国际化测试、本地测试、业务测试、界面测试按是否查看代码划分:黑盒测试:不关心软件的内部的结构、逻辑、功能的具体的代码实现、只关心输入和输出是否满足用户的需求黑盒测试设计的测试用例的方法?等价类、边界值、因果图法、错误猜测发、正交法、场景法比如Java单元测试的框架JUnit白盒测试:去测试软件的内部的代码的逻辑、结构、功能是否满足用户的需求。白盒测试的方法:语句覆盖、循环覆盖、逻辑覆盖(路径覆盖、条件覆盖、判定覆盖、条件组合、判定组合)灰盒测试:即关心软
2021-07-29 12:03:18
100
原创 基于UDP协议实现的‘智能’问答机器人
‘智能’问答机器人效果客户端代码服务端代码思想效果客户端输入消息后:服务端就会自动应答:????客户端代码/** * user:ypc; * date:2021-06-29; * time: 21:03; * 使用UDP创建一个客户端 */public class UDPDemo1 { //创建服务端的ip地址 private static final String ip = "127.0.0.1"; //创建服务器端的端口号 private s
2021-07-28 22:53:53
470
14
原创 搜索(四)
搜索17. 电话号码的字母组合401. 二进制手表39. 组合总和17. 电话号码的字母组合public class Solution17 { public static void main17(String[] args) { System.out.println(letterCombinations("23")); } static String[] stringMap = {"", "", "abc", "def", "ghi", "jkl", "mno"
2021-07-28 11:55:11
281
14
原创 09、04、11
剑指offer剑指 Offer 09. 用两个栈实现队列剑指 Offer 04. 二维数组中的查找剑指 Offer 11. 旋转数组的最小数字剑指 Offer 09. 用两个栈实现队列思路就是一个栈放元素、另一个栈取元素class CQueue { Stack<Integer> s1; Stack<Integer> s2; public CQueue() { s1 = new Stack<>(); s2 =
2021-07-27 23:06:35
85
8
原创 多种迭代写法实现二叉树遍历
二叉树迭代遍历思想实现思想利用栈和队列都可以实现树的迭代遍历。递归的写法将这个遍历的过程交给系统的堆栈去实现了,所以思想都是一样的、无非就是插入值的时机不一样。利用栈的先进先出的特点,对于前序遍历、我们可以先将当前的值放进结果集中,表示的是根节点的值、然后将当前的节点加入到栈中、当前的节点等于自己的left、再次循环的时候、也会将left作为新的节点、直到节点为空、也就是走到了树的最左边、然后回退、也就是弹栈、、也可以认为回退的过程是从低向上的、具体就是让当前的节点等于栈弹出的right、继续重复上面的
2021-07-27 13:27:23
254
12
原创 锁销除、锁粗化
锁销除、锁粗化锁销除锁粗化锁销除java中的锁销除是指JVM即时编译器在运行的时候,对一些代码要求同步、但是对被检测到不可能存在共享数据的竞争的锁进行消除。锁销除的主要的依据来源于逃逸机制分析的数据支持、如果判断到一段代码中、在堆上的所有的数据都不会逃逸出去被其它的线程访问到的时候,那么就可以把他们当作栈上的数据对待。栈是线程私有的,也就不会发生线程不安全的问题了。来看:????这是看起来一段没有锁的代码但是在JDK5之前字符串的加法操作会转换为StringBuilder对象连续的append(
2021-07-26 22:40:02
324
14
原创 html、js实现分页展示的功能
html、js实现简单的分页功能逻辑效果部分代码逻辑简单的逻辑实现:初始的curPage是1、通过登录界面将curPage传入到list.html的QueryString中在后端的逻辑处理是:后端通过获取到的curPage、来进行分页查询获取前端传来的参数curPage、每次只查询七个结果、如果在前端点击下一页的话、那么curPage + 1 、也就是下一次开始的位置是上一次查询的结束的位置。效果在第一页点击上一页:点击下一页之后:再次点击上一页:就又回到刚才的页面了:
2021-07-26 19:02:17
2826
32
原创 html、js实现简单的注册功能校验
html、js实现简单的注册功能校验效果源码效果什么都不写的话:未输入全部的信息的时候:如果密码的强度不高的话:两次密码不一致的情况:如果所有的信息都正确的情况下就会跳转到注册成功的界面:源码<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="I
2021-07-26 13:34:46
752
34
原创 Linux中有关进程管理的命令
ps、ps -ef、ps -aux、nice、kill、sleepLinux是一个多用户、多任务操作系统。这就意味着多个用户会使用同一个操作系统,每个用户又可以同时运行多个命令。命令的执行就是通过进程来实现的。进程就是程序的一次执行过程。在提示符后输入一个命令或者可执行文件的名字,按下回车键的时候、就开始执行这个命令了。操作系统为了执行这个命令、往往要创建相应的进程,通过进程的活动来完成一个预定的任务。在Linux中,通常执行一个命令都会创建一个或者多个的进程、也就是命令是通过进程来实现的。当进程完成任
2021-07-25 21:42:18
1087
12
原创 Linux中的5个简单命令
who、echo、date、cal、clearbash命令的一般的格式如下: 命令名 [选项][参数1][参数2]......例如: cp -i file1.c myfile.c该命令用于将源文件file1.c复制到目标文件myfile.c中,-i选项表示在覆盖后者之前先给出提示who 命令who命令用于将所有正在使用系统的用户、所有的终端名和注册到系统的时间列出来。输入who am i 命令将列出使用该命令的当前用户echo 命令echo命令用于将命令行中的参数显示到标准
2021-07-25 20:10:37
1195
9
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人