自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 元素三大等待

1.硬性等待让当前线程暂停执行,应用场景:代码执行速度太快了,但是UI元素没有立马加载出来,造成两者不同步,这时候就可以让代码等待一下,再去执行找元素的动作线程休眠,强制等待 Thread.sleep(long mills)package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.firefox.Firefox..

2022-03-26 16:20:38 984

原创 WebDriver相关API的使用--Java语言

1.get(String url)访问指定url页面2.getCorrentUrl()获取当前页面的url地址3.getTitle()获取当前页面的标题4.getPageSource()获取当前页面源代码5.quit()关闭驱动对象以及所有相关的窗口package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.firefox.FirefoxDriver

2022-03-26 15:24:47 1029 1

原创 Selenium常用API的使用--Java语言

seleniumAPI

2022-03-26 09:55:52 960 3

原创 Idea中自动化测试环境搭建

Firefox、IE、Chrome浏览器自动化环境问题可参考这篇博客:https://www.cnblogs.com/yyoba/p/12048866.htmlStep1:创建Maven项目Step2:引入selenium框架 <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java&lt

2022-03-24 10:14:16 862 1

原创 Selenium在Firefox浏览器中UI自动化测试环境搭建

1.Selenium IDESelenium IDE是一个Firefox/Chrome插件,用于记录和回放用户与浏览器的交互,使用它来创建简单的脚本或协助进行探索性测试1.1 Selenium IDE安装官网下载插件后本地安装http://www.seleniumhq.org/download/浏览器搜索插件安装当Firefox看到如下插件就说明Selenium IDE已安装好1.2 Selenium IDE录制/回放工具栏->Selenium IED直接点击菜单栏SE图标举

2022-03-23 17:49:03 1615 6

原创 SpringBoot搭建SSM框架项目,支持JSP页面

以下就是SpringBoot搭建SSM框架项目,集成使用jsp(超详细)的全部内容。看完如果对你有帮助,感谢点赞支持!文章目录1.创建项目,选择Spring Initializr创建一个Spring Boot类型的项目2.填写项目信息3.勾选项目依赖4.选择项目名称和项目代码保存目录5.添加上下文目录6.项目创建好后,如果IDEA没有标记,则手工把java、resources等目录标记为Maven规范的目录,如下图:7.添加依赖8.添加上下文目录9.指定SpringBoot的启动目录10.设置ap.

2022-03-22 10:09:55 2343 3

原创 SpringBoot中使用监听器

1.监听器web监听器是一张Servlet中特殊的类,它们能帮助开发者监听web中特定的事件,比如ServletContext,HttpSession,ServletRequest的创建和销毁;变量的创建、销毁、和修改等。可以在某些动作前后增加处理,实现监控2.SpringBoot中监听器的使用web监听器的使用场景很多,比如监听servlet上下文用来初始化一些数据、监听http session用来获取当前在线的人数、监听客户端请求的servletrequest对象来获取用户的访问信息等。2.1

2022-03-13 09:31:33 2751 6

原创 SpringBoot事务配置管理

1.事务使用功能场景:由于数据操作在顺序执行的过程中,线上可能有各种无法预知的问题,任何一步操作都有可能发生异常,异常则会导致后续的操作无法完成,此时由于业务逻辑并未正确的完成,所以在之前操作数据库的动作并不可靠,需要在这种情况下进行数据的回滚。事务的作用就是为了保证用户的每一个操作都是可靠的,事务中的每一步操作都必须成功执行,只要有发生异常就回退到事务未进行操作的状态。事务管理是SpringBoot框架中最为常用的功能之一,我们在实际应用开发时,基本上在service层处理业务逻辑的时候都要加上事

2022-03-12 16:44:45 7097 14

原创 SpringBoot集成MyBatis

MyBatisMyBatis是一个持久层框架,可以让开发者的主要精力放在sql上,通过Mybaits提供的映射方式,自由灵活的生成满足需要的sql语句,使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOS映射成数据库中的记录1.MyBatis的配置1.1 依赖导入SpringBoot集成MyBatis,需要导入mybatis-spring-boot-starter和mysql的依赖<dependency> <groupId>org.mybatis.sp

2022-03-09 15:59:39 734

原创 SpringBoot中的全局异常处理

在项目开发过程中,不管是对底层数据库的操作过程,还是业务层或控制层的处理过程,都会不可避免的遇到各种可预知的、不可预知的异常需要处理,如果对每个过程都单独作异常处理,那系统的代码耦合度会变得很高,且不好统一,增加了代码的维护成本,针对这种实际情况,我们需要将所有类型的异常处理从各处理过程解耦出来,这样既保证了相关处理过程的功能单一,也实现了异常信息的统一处理和维护,同时,我们也不希望直接把异常抛给用户,应该对异常进行处理,对错误信息进行封装,然后返回一个友好的信息给用户。1.定义返回的统一json结构前

2022-03-09 11:53:09 4049

原创 SpringBoot集成Thymeleaf模板引擎

ThemeleafThymeleaf是适用于web和独立环境的现代服务器端java模板引擎,Themeleaf的主要目标是为程序猿的开发工作流程带来优雅的自然模板,即可以在浏览器中正确显示的HTML,也可以用作静态原型,实现更强大的协作。Themeleaf是现代服务端的模板引擎,可以使用浏览器直接打开,相当于打开原生页面。就是说在本地环境或者有网络的环境下,Themeleaf均可运行。1.依赖导入在这里插入代码片...

2022-03-08 17:24:40 495

原创 SpringBoot中的MVC支持

本文主要介绍SpringBoot中几个常见注解的使用方式和特点,包括@RestController、@RequestMapping、@PathVariable、@RequestParam以及RequestBody1.@RestController我们先从RestController源码中看看该注解里都包含了哪些东西@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Controller@Respon

2022-03-08 15:49:16 1043

原创 SpringBoot中的项目属性配置

概述在项目中,很多时候需要用到一些配置信息,这些信息在测试环境和生产环境下可能会有不同的配置,后面根据实际业务情况有可能还需要再做修改,针对这种情况,我们不能将这些配置在代码中写死,最好是写到配置文件中,比如可以把这些信息写到 application.yml 文件中文章目录概述1.单一服务的配置和调用2.多个配置信息的情形3.指定项目配置文件1.单一服务的配置和调用在微服务架构中,最常见的就是某个服务需要调用其他服务来获取其提供的相关信息,那么在该服务的配置文件中需要配置被调用的服务地址,比如在当

2022-03-08 14:54:58 177

原创 SpringBoot使用slf4j进行日志记录

概述以往的开发中,我们经常使用sout来打印一些信息,大量的使用System.out会增加资源的消耗,SpringBoot提供了一套日志系统,使用slf4j的logback来输出日志,效率高这里引用百度百科的一段话SLF4J,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。也就是说:你只需要按统一的

2022-03-08 11:05:08 1905

原创 SpringBoot初识

概述Spring是为了解决企业级应用开发的复杂性而创建的,SpringBoot并不是用来替代Spring的解决方案,而是和Spring框架紧密结合,用于提升Spring开发者体验的工具,只需要非常少量的配置,SpringBoot继承了Tomcat和Jetty,默认使用Tomcat作为应用容器,开发者只需要将工程打成jar包直接丢到服务器上就可以执行了1.SpringBoot的优点1.1 基于Spring41.2 简化编码使用Spring时,需要在pom.xml文件中添加许多个依赖,而Spring

2022-03-07 14:36:42 113

原创 MyBatis实现动态SQL

在传统的JDBC操作过程中,进行SQL拼接是很麻烦而且很容易出错的,而MyBatis动态SQL的出现,解决了这个问题。动态SQL顾名思义,SQL 是动态拼接成的,根据传入的变量值进行逻辑操作,并动态拼接,方便实现多条件下的数据库操作。 在业务逻辑复杂,即简单 SQL 无法完成时,需要拼接时就要使用动态 SQL。1.数据准备DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `student_id` int(10) unsigne.

2022-01-05 13:34:47 945

原创 Mybatis实现动态SQL(环境搭建)

SQLCREATE TABLE blog( id varchar(50) not null comment '博客id', title varchar(100) not null comment '博客标题', author varchar(30) not null comment '博客作者', create_time datetime not null comment '创建时间', views int(30) not null comment '浏览量')第一步:建立实体类建立Bl

2022-01-02 17:41:09 539

原创 Mybatis实现复杂查询(多对一、一对多)

注:本文章所有内容都建立在上篇文章的基础上接上篇博客:https://blog.csdn.net/liyuuhuvnjjv/article/details/122244531案例1:查询所有Student步骤一:修改StudentMapper.xml文件<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" .

2021-12-31 14:00:53 537

原创 Mybatis实现复杂查询(测试环境搭建)

文章目录测试环境搭建SQL第一步:建立实体类建立Student类:建立Teacher类第二步:建立Mapper接口建立StudentMapper接口建立TeacherMapper接口第三步:建立Mapperx.XML文件建立TeacherMapper.xml文件建立StudentMapper.XML文件第四步:在核心配置文件中绑定注册我们的Mapper接口或者文件!第五步:测试类:查询是否能够成功测试环境搭建SQL学生通过tid关联老师;create table `teacher`( `

2021-12-30 20:21:17 672

原创 传输层(概念)

从传输层的角度来看,通信的真正端点并不是主机而是主机中的进程,也就是说,端到端的通信是应用进程之间的通信概述:传输层实现端到端的连接,端到端是什么概念呢?比如说:一个人用QQ与朋友聊天,网络层识别IP地址,能够将信息发送到正确的主机,而主机需要使用什么应用协议接收这个信息呢?这个功能就需要靠传输层来完成,传输层实现进程到进程的连接从IP层来说,通信的两端是两台主机,但“两台主机之间的通信”这种说法还不够清楚严格的来讲,两台主机进行通信就是两台主机中的应用进程互相通信传输层主要有TCP和U.

2021-12-29 21:16:25 2705 1

原创 Alter的用法

1.增加列ALTER TABLE [表名] ADD [列名] [类型]alter table table add name varchar(10) not Null;2.删除列ALTER TABLE [表名] DROP [列名]3.对列重命名ALTER TABLE [表名] CHANGE [列名][新名] 4.修改表字段alter table 表名 change 旧字段名 新字段名 字段类型 [是否允许非空];5.创建索引ALTER TABLE tbl_name ADD INDE

2021-12-29 20:07:53 1055

原创 谈谈我所理解的Java反射机制~

概述Java的反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的方法和属性,既然能拿到,那么我们就可以修改部分类型信息;这种动态获取信息以及动态调用方法的功能称为Java语言的反射机制。文章目录概述1.反射的用途2.反射相关的类2.1.Class类(反射的入口)2.2.如何拿到class对象?3.反射优点和缺点4.总结1.反射的用途1.在日常的第三方应用开发过程中,经常会遇到某个类的成员变量、方法或是属性是私有的,或是只对系统应用开放,这

2021-12-19 22:15:41 585 3

原创 学习XML

文章目录1.xml概述1.1.引入1.2.什么是xml2.xml的基本语法2.1.语法规则2.2.属性2.3.CDATA1.xml概述1.1.引入Xml数据格式最主要的功能就是 数据传输那么Xml数据格式主要的用途又有哪些?程序之间的数据传输通讯配置文件config.xml存储数据,充当小型数据库特点:规范数据格式,使数据具有结构性,易读易处理1.2.什么是xmlXml指的是,可扩展性标记语言Xml被发明的目的是传输和存储数据,而不是展示数据Xml的标签必须自定义(

2021-12-09 16:03:35 350 2

原创 在Mybatis上日志的使用

曾经:sout、debug现在:日志工厂我们在对数据库进行增删改查的时候,出现异常,需要排错,如果在控制台能输出对应的SQL,就有了更快的排错效率,在以往的开发中,遇到问题我们通常使用debug模式跟踪代码执行过程来进行排错,而Mybatis是基于接口,配置文件的源代码执行过程,所以必须选择使用日志工具来进行调试文章目录1.常用的Mybatis日志实现工具2.STDOUT_LOGGING(标准化日志输出)3.Log4j1.常用的Mybatis日志实现工具SLF4JApache Comm.

2021-12-02 10:51:00 1224 1

原创 Mybatis解决属性名和字段不一致的问题

文章目录1.表的设计:2.实体类3.Mapper映射文件4.测试类5.结果6.问题分析:password没有获取到?7.解决方案7.1.取别名7.2.使用结果集映射->ResultMap1.表的设计:2.实体类public class User { private int id; private String name; private String password;}3.Mapper映射文件<?xml version="1.0" encoding=.

2021-12-01 14:42:32 934

原创 Mybatis生命周期和作用域

文章目录工作流程图1、SqlSessionFactoryBuilder2、sqlSessionFactory3、SqlSession工作流程图生命周期和作用域,是至关重要的,错误的使用会导致非常严重的并发问题1、SqlSessionFactoryBuilder用于创建SqlSessionFactory,一旦创建了SqlSessionFactory,就不再需要他了因此SqlSessionFactoryBuilder是局部变量2、sqlSessionFactory可以想象为数据库连接池

2021-12-01 13:44:53 52

原创 mybatis的配置优化

文章目录1.配置解析(优化)1.1.环境配置1.2.属性(properties)2.类型别名2.1.为实体类取别名3.映射器(mappers)1.配置解析(优化)1.1.环境配置MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中(比如需要不同的环境,mysql和oracle)尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。如果你想连接两个数据库,就需要创建两个 SqlSessionFactory 实例,每个数据库

2021-11-07 20:46:23 1065 2

原创 MyBatis中map的应用&&模糊查询

文章目录1.MyBatis中map的应用1.1.应用场景2.2.具体实现1.3.注意点!!!2.模糊查询1.MyBatis中map的应用1.1.应用场景假设,实体类,或者数据库中的表,字段或者参数过多,应当考虑使用Map!!!2.2.具体实现//万能mapint addUser2(Map<String,Object> map); <!--对象中的属性,可以直接取出来 parameterType=传递map中的key--> <insert id=

2021-11-07 15:49:08 605 2

原创 mybatis

文章目录总结1.mybatis2.思路流程&&工作原理2.1.思路流程2.2.工作原理2.3.两个重要的文件3.Mybatis程序3.1.创建数据库3.2.新建项目3.3.在该父项目下新建Module3.4.编写代码4.整体文件结构总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。1.mybatismybatis是一个持久层框架,作用是跟数据库交互完成增删改查操作,就

2021-11-05 10:36:46 205 2

原创 UI自动化---selenium

1.元素定位1.1.id定位driver.find_element(By.ID, "kw").send_keys("selenium")1.2.name定位driver.find_element(By.NAME, "wd").send_keys("selenium")1.3.link_text定位超链接(也可以部分链接文本,但文本必须唯一)driver.find_element(By.LINK_TEXT, "hao123").click()1.4.xpath定位两种定位方式①绝对路

2021-09-28 17:47:10 269

原创 Spring核心容器

1.IoC(控制反转)是面向对象编程中的一种设计原则,可以用来减低计算机代码之间之间的耦合度。系统中通过引入实现了IoC模式的IoC容器,即可由IoC容器来管理对象的生命周期、依赖关系等,从而使得应用程序的配置和依赖性规范与实际的应用程序代码分离。从使用上看,以前手动new对象,并设置对象中属性的方式,控制权是掌握在应用程序自身,现在则全部转移到了容器,由容器来统一管理对象,因为控制权发生了扭转,所以叫控制反转...

2021-09-24 16:13:09 66

原创 垃圾回收与算法

1.如何确定垃圾1.1.引用计数算法一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。存在问题:无法解决对象之间循环引用的问题1.2.可达性分析算法通过一系列的“GC roots”对象作为起点搜索。如果在“GC roots”和一个对象之间没有可达路径,则称该对象是不可达的。要注意的是,不可达对象不等价于可回收对象,不可达对象变为可回收对象至少要经过两次标记过程。两次标记后仍然是可回收对象,则将面临回收。2.垃圾收集算法2..

2021-07-28 11:43:07 78

原创 python+unittest框架实现接口自动化

1.接口测试接口测试是在测试系统组件间接口的一种测试。接口测试主要是用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点主要是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。2.为什么要做接口测试?不通过前端UI界面,或者前端UI界面还没设计出来需要对功能做测试,这也是测试工程师需要尽早介入测试业务的逻辑,数据的资源,安全,都需要通过接口去测试3.接口测试流程需求评审-接口评审---->需求分析-接口分析---->接口用例设计----&gt

2021-07-08 10:22:49 382

原创 入门Redis看这篇就够了!!!

1.为什么要用缓存1.1.缓存定义缓存是一个高速数据交换的存储器,使用它可以快速的访问和操作数据1.2. 程序中的缓存当没有使⽤缓存时,程序的调⽤流程是这样的:但随着业务的发展,公司的框架慢慢变成了多个程序调⽤⼀个数据库的情况了此时,最可能出现性能瓶颈的就是数据库。数据库的资源同时也是程序中最昂贵的资源,因此为了防⽌数据库被过度的浪费,我们就需要给它雇⼀个“助理”了,这个助理就是缓存系统。加⼊缓存后,程序的交互流程如下图所示:...

2021-04-25 21:28:22 202

原创 python文件与文件夹的操作

有关文件夹与文件的查找,删除等功能 在 os 模块中实现。使用时需先导入这个模块import os!!!1.获取当前目录:import oss = os.getcwd()print(s) # E:\LearnPython\pythonStudy2.创建一个文件夹以当前日期为名创建至当前目录下import osimport timefolder = time.strftime(r"%Y-%m-%d_%H-%M-%S", time.localtime())os.makedirs

2021-04-25 18:19:46 292 5

原创 利用unittest框架测试学生宿舍管理系统的登录功能

测试源码如下:import unittestfrom HTMLTestRunner import HTMLTestRunnerimport openpyxlfrom ddt import ddt, data, unpackfrom selenium import webdriverimport osimport time# 读取excel# xlrd,xlwt,openpyxldef read_excel(): workbook = openpyxl.load_workbo

2021-04-24 18:13:44 199

原创 unittest单元测试框架

1.什么是框架框架就是开发大佬定制研发的应用骨架,是一个半成品,它对基础的代码进行了封装并且提供一些API接口,其他开发者只需要直接调用封装好的API接口即可,可以省去很多代码的编写,从而提高工作效率2.什么是自动化框架以及它的作用2.1.自动化框架自动化测试leader为了对一个系统做自动化测试而封装的一个代码主骨架,其他的自动化测试工程师只需要去调用这个骨架里面的方法就可以实施自动化测试,这个代码骨架就叫做自动化框架2.2.自动化框架的作用提高测试效率,降低维护成本减少人工干预脚本因素

2021-04-24 11:37:40 418 1

原创 python3面向对象~

python是一门面向对象的语言!!!1.面向对象类(class):用来描述具有相同的属性和方法的对象的集合,它定义了该集合中每个对象所共有的属性和方法,对象是类的实例方法:类中定义的函数类变量:在整个实例化的对象中是公用的,类变量定义在类中且在函数体之外,通常不作为实例变量使用数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,也叫做覆盖局部变量:定义在方法中的变量,只作用于当前实例的类实例变量:在类的声明中,

2021-04-23 14:47:32 110

原创 python3基础语法

1.条件控制x = 1if x < 1: print("x小于1")elif x > 1: print("x大于1")else: print("x等于1")注意点:每个条件后面要使用冒号使用缩进来划分语句块python中没有switch-case语句if可以嵌套2.while循环语句2.1.while循环python中没有do-while循环n = 100sum = 0while n > 0: sum += n

2021-04-21 20:35:44 369 2

原创 Python3基础语法

1.Python运算符1.1.算术运算符运算符描述+两个对象相加-两个对象相减*两个对象相乘/两个对象相除(浮点型)%取模**a**b为a的b次幂//取整除,向下取接近商的整数a = 21b = 10print(a + b) # 31print(a - b) # 11print(a * b) # 210print(a / b) # 2.1print(a % b) # 1print(a ** b)

2021-04-18 09:05:49 356 1

空空如也

空空如也

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

TA关注的人

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