junit

初学Redis(五)--SpringBoot整合Redis+附项目代码

回眸只為那壹抹淺笑 提交于 2020-04-27 15:20:33
1.环境搭建 我们还是继续用在初学Redis(四)中使用的项目 项目代码 链接:https://pan.baidu.com/s/1yiwBs1RZlD6D2jqc-qxUzQ 提取码:kzz3 1.1替换pom依赖 <dependencies> <!--redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.1.4.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <!--测试--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <version>2.2.4.RELEASE</version> </dependency> </dependencies> 1.2

Spring-IOC进阶篇来了!!!

别说谁变了你拦得住时间么 提交于 2020-04-26 23:21:05
Spring 一. I OC -进阶 1. 进阶案例1:面向接口编程 Dao、service先定义接口,再定义接口的实现类 为什么要用面向接口编程: 维护和扩展功能更方便 接口中暂不书写任何注解 service类: @Component ( "demo1ServiceImpl" ) public class Demo1ServiceImpl implements Demo1Service { @Resource (name= "demo1DaoImpl" ) private Demo1Dao demo1Dao ; } 测试类: @RunWith (SpringJUnit4ClassRunner. class ) @ContextConfiguration (classes = {SpringConfiguration. class }) public class Demo1Test { @Resource (name= "demo1ServiceImpl" ) private Demo1Service demo1Service ; @Test public void run1(){ System. out .println( demo1Service ); } } 2.​​​​​​​ 进阶案例2:衍生注解 @Component : 通用的注册组件的注解。 通过该注解

SpringBoot消息队列之-rabbitMQ

本秂侑毒 提交于 2020-04-26 19:05:22
一、概述 1.在大多应用中,我们系统之间需要进行异步通信,即异步消息。 2.异步消息中两个重要概念: 消息代理(message broker)和目的地(destination) 当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。 3.异步消息主要有两种形式的目的地 队列(queue):点对点消息通信(point-to-point) 主题(topic):发布(publish)/订阅(subscribe)消息通信 4.点对点式: –消息发送者发送消息,消息代理将其放入一个队列中,消息接收者从队列中获取消息内容,消息读取后被移出队列 –消息只有唯一的发送者和接受者,但并不是说只能有一个接收者 5.发布订阅式: –发送者(发布者)发送消息到主题,多个接收者(订阅者)监听(订阅)这个主题,那么就会在消息到达时同时收到消息 二、AMQP(Advanced Message Queuing Protocol) –高级消息队列协议,也是一个消息代理的规范,兼容JMS –RabbitMQ是AMQP的实现 核心概念: Producer&Consumer –producer指的是消息生产者,consumer消息的消费者。 Broker –它提供一种传输服务,它的角色就是维护一条从生产者到消费者的路线,保证数据能按照指定的方式进行传输 Queue –消息队列

springboot1.5.6和springboot2.X.X redis连接池问题

无人久伴 提交于 2020-04-26 17:02:03
问题现象 今天从性能监控日志查看,使用junit测试的代码,springboot 2.1.0测试单次一个简单的redis get/set操作都需要耗时600-800ms。 问题排查 发现不同springboot版本,性能差距也特别大 当时使用的是spring.2.1.0,但是切换成springboot1.5.6只能大概耗时是在100毫秒左右。 但是网上说法时springboot2.0 redis使用Lettuce实现按道理性能相差应该不会这么大。 实测结果 springboot: 2.1.0 springboot: 1.5.6 junit测试获取redis缓存数据改成100次,仅有第一次获取缓存值性能相差巨大 springboot: 2.1.0 springboot: 1.5.6 查看源码不同springboot 版本对应redis连接池实现 springboot 2.1.0中则是延迟加载实现,只有在 具体使用到 redis连接池时LettuceConnectionFactory才会创建redis连接池。 springboot 1.5.6的连接池是 spring初始化 bean时已创建,导致在使用JedisConnectionFactory获取连接时,直接获取就行了。 springboot: 2.1.0 源码跟踪发现,第一次this.connection == null

软件测试和评估(百词斩和扇贝单词)

元气小坏坏 提交于 2020-04-26 08:33:24
一、基本任务 (1)计划说明。内容包括: a. 说明本组选择的对比测试产品A和B; 百词斩和扇贝单词; b. 预估项目完成时间,完成测试进度表(项目完成后,需再次记录实际测试工作所花费的时间); (2)需求说明。内容包括: a. 给出产品A和B的功能模块划分图; 百词斩和扇贝: b. 说明本人负责的功能模块; 我负责的模块是:复习模块 (3)测试说明。 内容包括: a. 说明测试用例的设计思路,至少结合课堂讨论的边界值、等价类、场景测试方法设计测试用例,必要时建议给出关键业务流程图,或场景图; 设计思路:给出预置条件,执行指定的操作步骤,获得预期的结果,利用这个思路来测试模块里面的功能是否满足需求。在禅道的测试用例编写界面如下: b. 提供能证明功能测试执行的部分操作和运行界面截图; 操作: 打开百词斩app->点击“复习”->->点击“英文选义” 预期结果:出现单词,以及释义提供选择。 继续点击“提示”->显示详情;继续点击“斩”->切换下一个单词; 实际测试截图: c. 说明本组使用的测试管理工具名称,说明版本号,给出下载链接地址; 测试管理工具:禅道 版本号:9.8.3 下载地址: http://dl.cnezsoft.com/zentao/9.8.3/ZenTaoPMS.9.8.3.win64.exe d. 给出测试管理工具使用的关键界面截图(如测试用例导出、缺陷导出等);

软件测试工具——Selenium IDE与JUnit

ε祈祈猫儿з 提交于 2020-04-26 07:08:30
软件测试一般用到的工具、框架、技术列表,测试工具分为很多种,主要如下: Java: JUnit 测试管理工具: MQC,TestManager,QACenter,其中缺陷跟踪还可以使用:变更管理工具 功能测试自动化: QTP,RFP,QARun,Silk 性能测试工具: Loadrunner,Robot,QAload,WAS,Silk Performance 单元、白盒测试工具: Junit,Jmeter,devpartner,Jprobe,Purify Plus 安全测试: Appscan,Fortify 这里介绍两种测试工具: Selenium IDE 与 JUnit 。 Selenium IDE 一、简介 Selenium 是 ThoughtWorks 专门为 Web 应用而开发的自动化测试工具,适合进行功能测试、验收测试.它由三部分组成:Selenium IDE、Selenium Core、Selenium Remote Control。 Selenium IDE ,一个firefox的plug-in,可以录制和回放并保存一些test cases, 可以生成一些简单的基于rc 模式的简单code.可以通过Firefox的工具->附加软件->获取扩展->搜索Selenium IDE,下载并安装该插件。 Selenium 命令分成两类 —— 操作(action) 和断言

使用Groovy进行Java的单元测试

▼魔方 西西 提交于 2020-04-26 06:06:47
为什么用Groovy写单元测试 它与Java 平台无缝的集成,它是基于 Java 的语言(不像其他语言,是对 JRE 的替代,因此可能基于旧版的处理器),对于 Java 开发人员来说,Groovy 意味着一条短得让人难以置信的学习曲线。而且一旦将这条学习曲线拉直,Groovy 就能提供一个无与伦比的快速开发平台。 从这个角度来说,Groovy 成功的秘密,在于它的语法 就是 Java 语法,但是规则更少。例如,Groovy 不要求使用分号,变量类型和访问修饰符也是可选的。而且,Groovy 利用了标准的 Java 库,这些都是您已经很熟悉的,包括 Collections 和 File/IO 。而且,您还可以利用任何 Groovy 提供的 Java 库,包括 JUnit。 事实上,令人放松的类 Java 语法、对标准 Java 库的重用以及快捷的生成-运行周期,这些都使 Groovy 成为快速开发单元测试的理想替代品。 如何使用Groovy进行Mock测试 用Groovy进行Mock要比JMockit之类的简单很多,下面举例还演示如何使用 待测试类 折叠源码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

Intellij IDEA 安装与激活

好久不见. 提交于 2020-04-25 16:46:08
Intellij IDEA是java编程语言开发的集成环境。它在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。 Every aspect of IntelliJ IDEA is specifically designed to maximize developer productivity. Together, the powerful static code analysis and ergonomic design make development not only productive but also an enjoyable experience. IntelliJ IDEA的每个方面都专门设计用于最大化开发人员的工作效率。 强大的静态代码分析和符合人体工程学的设计使开发不仅具有高效性,而且还具有令人愉悦的体验。 IDEA的下载与安装 下载 ​ IDEA下载比较简单,它的官网提供了Ultimate(旗舰版)和Community(社区版)两个版本的下载方式,其中旗舰版包含了所有的功能,只能免费试用30天,过了期限后就需要收费了;社区版是缩减版,只提供了基本的功能,这个版本是免费的。那么我们使用旗舰版就必须要收费吗

pytest 常用命令行选项学习笔记(一)

一世执手 提交于 2020-04-25 09:53:02
1. pytest --help/-help 查看全部选项 2. pytest -m选项 描述: 标记(marker)用于标记测试并分组,以便快速选中并运行。 3. pytest -v选项 描述: 使用-v/--verbose选项,输出的信息会更详细。最明显的区别就是每个文件中每个测试用例都占一行,测试的名字和结果都会显示出来,而不仅仅是一个点或字符。如下图: 4. pytest -s 描述: 关闭Captured stdout call输出信息(失败或成功都不显示输出结果),但是会显示在test session start部分效果等同于 --capture=no 实例: $pytest teset_sample.py $pyteset -s test_sample.py,加了-s不再显示Captured stdout call信息,但是会显示test session starts 5. pytest --alluredir=DIR 描述: 在指定目录生成allure报告(需要安装第三方库pip install allure-pytest) 注意:pytest-allure-adaptor已经废弃,如果安装了它会导致pytest无法正常运行,所以建议安装allure-pytest 6. pytest test.py --reruns 3 或 pytest test.py -

UIAutomator2、Appium、Robotium搭建环境与框架对比

孤街醉人 提交于 2020-04-25 09:45:59
UIAutomator2、Appium、Robotium搭建环境与框架对比 一.框架介绍 Appium 特点 appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用。 “移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。 “移动web应用”是指使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的 Chrome)。 “混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。比如,像 Phonegap,可以帮助开发者使用网页技术开发应用,然后用原生代码封装,这些就是混合应用。 重要的是,appium是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了iOS和Android测试套件间代码的复用性。 安装Appium 搭建环境比较繁琐:JDK + Android-sdk + Node.Js + Appium + Python_Client + 环境变量配对 [root@BenLam-vm_0 ~]# appium -v [Appium] Welcome to Appium v1.8.1 通过命令启动 Appium [root@BenLam-vm_0 ~]#