第一节:自动化测试框架如何动态生成用例(咕泡)

一、UnitTest自动化测试框架UniTest是Python标准库内置的测试框架,支持自动化、整合测试用例、生成测试报告等功能。同时,通过面向对象的方式支持一些重要概念,比如:测试夹具测试用例测试套件#UniTest基本用法importunittest#导入模块相当于“工具箱”importHTMLTestRunner#框架提供了很多东西,包括父类#1、定义TestCase子“类”#defsanmu(self):#函数#passclassSanMu(unittest.TestCase):deftest_sanmu(self):#方法pass#2、定义test_开头的测试方法#3、使用main发现和执行测试if__name__=='__main__':#nittest.main()#自动发现suite=unittest.TestSuite#手动发现suite.addTest(SanMu("test_sanmu"))#runner=unittest.TextTestRunner()#文本型测试报告runner=HTMLTestRunner.HTMLTestRunner()#HTML型的测试...

Holmos框架

Holmos-webtest是一个居于selenium2.0二次封装的开源框架,采用Page-Object模式去组织页面结构,同时支持多维度的页面元素定位方式,同时还继承了junit,log4j,poi等框架Holmos-webtest写WebUI自动化程序大概分为两大模块,页面库和测试用例Holmos-webtest的页面库结构Holmos-webtest元素是页面dom数的一个节点,这个节点可以是叶子节点,也可以非叶子节点,分为以下几种:Holmos-webtest支持跟webdriver一样的定位方式,而且支持多维。打开IDEA并新建一个maven工程配置pom.xml文件如下,引入Holmos-webtest模块相关包从百度网盘下载配置文件放于C盘根目录 ...
代码星球 代码星球·2021-02-23

Selenium+Java完整框架搭建(2019完整版)

(1)什么是框架框架是可以被应用开发者定制的应用骨架(2)为什么要写框架?提高脚本可维护性提高编写脚本的速度提高脚本可阅读性(3)框架的几个要素?driver管理,等待管理,常用方法封装,LOG,常用类封装,数据,失败重跑等等通过IDEA新建个项目名TestAutomation2019的Maven工程导入Selenium和TestNG对应的jar包在工程根目录新建一个driver文件夹,放置driver新建一个包:com.lixx在com.lixx下新建driver包在driver包下新建SeleniumDriver类封装driver代码实例演示测试packagecom.lixx.drivers;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;importorg.openqa.selenium.edge.EdgeDriver;importorg.openqa.selenium.firefox.FirefoxDriver;importorg.openqa.selenium...

Mocha 单元测试框架简介

mocha是JavaScript的一种单元测试框架,既可以在浏览器环境下运行,也可以在Node.js环境下运行。使用mocha,我们就只需要专注于编写单元测试本身,然后,让mocha去自动运行所有的测试,并给出测试结果。mocha的特点主要有:既可以测试简单的JavaScript函数,又可以测试异步代码,因为异步是JavaScript的特性之一;可以自动运行所有测试,也可以只运行特定的测试;可以支持before、after、beforeEach和afterEach来编写初始化代码。安装:npminstallmocha-g一个简单的例子:在项目根目录F:mocha下,创建test目录,然后编辑第一个测试脚本test.1.js,具体代码如下:varexpect=require('chai').expect;  //引入断言库functionadd(x,y){returnx+y;}module.exports=add;describe('加法函数的测试',function(){  it('4加4应该等于8',function(){  ...

Spock单元测试框架实战指南三-If esle 多分支场景测试

如果业务比较复杂,对应的代码实现会有不同的分支逻辑,类似下面的伪代码:if(){if(){//代码逻辑}else{//代码逻辑}}elseif(){for(){if(){//代码逻辑}else{//代码逻辑returnresult;}}}复制代码这样的ifelse 嵌套代码因为业务的原因很难避免,如果要测试这样的代码,保证覆盖到每一个分支逻辑的话,使用传统的Junit单元测试代码写起来会很痛苦和繁琐,虽然可以使用Junit的@parametered参数化注解或者dataprovider的方式,但还是不够直观,调试起来也不方便下面就结合具体业务代码讲解Spock如何解决这种问题,还是先看下业务代码逻辑:/***身份证号码工具类<p>*15位:6位地址码+6位出生年月日(900101代表1990年1月1日出生)+3位顺序码*18位:6位地址码+8位出生年月日(19900101代表1990年1月1日出生)+3位顺序码+1位校验码*顺序码奇数分给男性,偶数分给女性。*@author公众号:Java老K*个人博客:www.javakk.com*/publicclassIDN...

Java 并发之 Executor 框架

在学习 JUC 的过程中我发现,JUC这个包下面的文档写的十分的好,清楚又易于理解,这篇博客便是参考JUC中和 Executor 框架相关的一些类文档汇总出来的。当然了,Executor框架涉及到的类还是不少的,全部汇总的话时间成本太高,有点亏,所以这里主要就集中在了 Executor 接口及其子接口和具体实现上。Executor框架的起点自然就是 Executor 接口,可以说整个Executor框架便是建立在 Executor 接口和其子接口上的,大致结构为:其中,接口 Executor 表示定制的 thread-like 子系统,包括线程池、异步I/O和轻量级的任务框架。同时,依赖于具体的Executor实现,新的任务可能在新线程、已存在的任务执行线程或调用 Executor.execute 方法的线程中执行,不同任务的执行可能是依序执行的或并行执行的。而 Executor 的子接口 Exec...
代码星球 代码星球·2021-02-23

自己手写一个SpringMVC框架

前端框架很多,但没有一个框架称霸,后端框架现在Spring已经完成大一统。所以学习Spring是Java程序员的必修课。     Spring框架对于Java后端程序员来说再熟悉不过了,以前只知道它用的反射实现的,但了解之后才知道有很多巧妙的设计在里面。如果不看Spring的源码,你将会失去一次和大师学习的机会:它的代码规范,设计思想很值得学习。我们程序员大部分人都是野路子,不懂什么叫代码规范。写了一个月的代码,最后还得其他老司机花3天时间重构,相信大部分老司机都很头疼看新手的代码。    废话不多说,我们进入今天的正题,在Web应用程序设计中,MVC模式已经被广泛使用。SpringMVC以DispatcherServlet为核心,负责协调和组织不同组件以完成请求处理并返回响应的工作,实现了MVC模式。想要实现自己的SpringMVC框架,需要从以下几点入手:    一、了解SpringMVC运行流程及九大组件    ...

EF框架和Ado.Net的使用比较

1、性能上(运行效率)Ado.Net的性能更高些,直接使用SQLHelper的Command、Connection等命令通过写SQL语句对数据库进行操作。(EF的实体模型,性能上肯定要损失些!!)2、方便性上(开发效率)EF使用起来更方便,原因是开发人员不用关心如何访问数据库了。3、适用性上EF适合较大型的项目,数据量也较大些;而Ado.Net适用于小型项目(执行效率高些)。4、灵活性上Ado.Net灵活性更高,但可能存在sql注入的问题。 PS(相关的):EF最终都是翻译转换成sql去执行的,开发很快捷。ado相对来说你可以自行处理sql存储过程和脚本,灵活性大,不需要进行翻译,但工作量会相对多一些。微软最初退出ORM技术,目的是在提高开发效率,并不是提高运行效率,它只是使对数据库的编码更符合面向对象的编程的方式。EF框架和Ado.Net,其实简单来说,就是封装和原生的PK了。...

关于EF框架EntityState的几种状态

使用EF框架时,我们通常都是通过调用SaveChanges方法把增加/修改/删除的数据提交到数据库,但是上下文是如何知道实体对象是增加、修改还是删除呢?答案是通过EntityState的枚举值来判断的。也就是说在操作数据库时,EF会根据EntityState这个枚举检测到实体的状态,然后执行相应的增/删/改操作。 在使用EF框架时,我们通常都是通过调用SaveChanges方法把增加/修改/删除的数据提交到数据库,但是上下文是如何知道实体对象是增加、修改还是删除呢?答案是通过EntityState的枚举值来判断的。也就是说在操作数据库时,EF会根据EntityState这个枚举检测到实体的状态,然后执行相应的增/删/改操作。该状态对应的值为以下五种:Detached:对象存在,但未由对象服务跟踪。在创建实体之后、但将其添加到对象上下文之前,该实体处于此状态;Unchanged:自对象加载到上下文中后,或自上次调用System.Data.Objects.ObjectContext.SaveChanges()方法后,此对象尚未经过修改;Added:对象已添加到对象上下文,但尚未...

基于CPU版本的Caffe推理框架

最近一段时间,认真研究了一下caffe。但是,里面内容过多,集合了CPU版本和GPU版本的代码,导致阅读起来有些复杂。因此,特意对caffe代码进行了重构,搭建一个基于CPU版本的Caffe推理框架。此简化的Caffe推理框架具有以下特点:只有CPU推理功能,无需GPU;只有前向计算能力,无后向求导功能;接口保持与原版的Caffe一致;精简了大部分代码,并进行了详尽注释。通过对Caffe的重构,理解了如何搭建一个推理框架,如何从输入一张图片从而得到结果。注意:此框架只是用于教学使用,通过最简单的图片分类的方式来理解框架,不保证适合不同的任务。项目地址为:https://gitee.com/dengshunge/simple-caffe-inference SimpleCaffe中保持了与原版caffe同样的代码结构,整体结构始终贯穿着Blob、Layer和Net这3大类,分别负责数据的存储、网络的层次和网络骨架:Blob:负责数据的传输,其中数据主要包括每层的输入输出数据、模型的权重等;Layer:负责构建模型的每一层,主要处理如何将该层的输入转换成输出;Net:负责搭建网络...

MvvmLight框架的基本使用

关于MvvmLight框架的介绍可以看这篇,说的很详细,在此记录下来以作复习,通过一个简单的例子说明MvvmLight的基本使用https://www.cnblogs.com/3xiaolonglong/p/10001787.html首先MvvmLight框架最大的优点就是起到分离试图(View)和模型(Model)的作用,相对于之前把逻辑结构写在CodeBehind的方式,MVVM模式几乎完全解耦了视图和逻辑业务的关系,通过数据绑定和命令绑定来处理UI属性及事件驱动;同时,ViewModel中对属性的变更也会通知到View前端,让View前端实时更新。MVVM中,各个部分的职责如下:Model:负责数据实体的结构处理,与ViewModel进行交互;View:负责界面显示,与ViewModel进行数据和命令的交互;ViewModel:负责前端视图业务级别的逻辑结构组织,并将其反馈给前端。 按照大佬的步骤安装MVVMLight,然后新建一个MVVMLight框架的WPF项目,项目中包括ViewModel文件夹,里面有MainViewModel.cs和ViewModelLocat...

小程序第三方框架对比 ( wepy / mpvue / taro )(转)

文章转自  https://www.cnblogs.com/Smiled/p/9806781.html      众所周知如今市面上端的形态多种多样,手机Web、ReactNative、微信小程序,支付宝小程序,快应用等,每一端都是巨大的流量入口,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要。但面对目前市面上成熟的小程序第三方框架如何针对自己的需求进行选择也是一个麻烦事,本文针对当前市面上的三大转译框架进行一个综合对比,希望能对大家的技术选择有所帮助,如有哪里不妥的地方希望指正;频繁调用setData及setData过程中页面跳闪组件化支持能力太弱(几乎没有)不能使用less、scss等预编译器request并发次数限制只要熟悉vue或react即可快速上手,学习成本低 一套代码可在多端编译运行(微信,支付宝,h5,RN)  支付宝小程序暂不完善组件化开发,完美解决组件隔离,组...

spring-batch批处理框架

转自 http://www.cnblogs.com/gulvzhe/archive/2011/10/21/2220260.html这个框架没有实际操作,只是从同事处学习到,先转个好文章,以后有机会再研究SpringBatch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。SpringBatch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。SpringBatch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。       业务方案:1、批处理定期提交。2、并行批处理:并行处理工作。3、企业消息驱动处理4、大规模的并行处理5、手动或是有计划的重启6、局部处理:跳过记录(如:回滚)      技术目标:1、利用Spring编程模型:使程序员专注于业务处理,让Spring框架管理流程。2、明确分离批处理的执行...
代码星球 代码星球·2021-02-23

从ORM框架到SQLAlchemy

对象-关系映射(Object-RelationalMapping,简称ORM),面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。  当我们实现一个应用程序时(不使用O/RMapping),我们可能会写特别多数据访问层的代码,从数据库保存、删除、读取对象信息,而这些代码都是重复的。而使用ORM则会大大减少重复性代码。对象关系映射(ObjectRelationalMapping,简称ORM),主要实现程序对象到关系数据库数据的映射。3.1ORM方法论基于四个核心原则: 简单:ORM以最基本的形式建模数据。比如ORM会将MySQL的一张表映射成一个Java类(模型),表的字段就是这个类的成员变量 精确:...
代码星球 代码星球·2021-02-22
首页上一页...45678...下一页尾页