背景 在 "Groovy元编程简明教程" 一文中,简明地介绍了 Groovy 元编程的特性. 那么,元编程可以应用哪些场合呢?元编程通常可以用来自动生成一些相似的模板代码. 在 "使用Groovy+Spock构建可配置的订单搜索接口测试用例集" 一文中,谈到了如何将搜索接口的测试用例配置化. 不过,那还只是初级配置化, 含有浓浓的 Java 对象味了, 测试代码与测试用例集合的配置实际上并没有分离,整个测试方法看起来不够清晰. 那么,用元编程的方法,会是怎样呢 ?…
概述 测试是软件成功上线的安全网.基本的测试包含单元测试.接口测试.在 "使用Groovy+Spock轻松写出更简洁的单测" 一文中已经讨论了使用GroovySpock编写简洁的单测,本文讲解使用Groovy+Spock来构建订单搜索的接口测试用例集合. 主工程是用Java写的.之所以采用Groovy, 是因为其语法近似Python的简洁,可以方便地构造List, Map 及使用闭包方便地遍历这些容器,可以使用元类方便地访问Java类的私有成员.Groovy 是与 Java 系统集成的…
同函数式编程类似,元编程,看上去像一门独派武学. 在 <Ruby元编程>一书中,定义:元编程是运行时操作语言构件的编程能力.其中,语言构件指模块.类.方法.变量等.常用的主要是动态创建和访问类和方法.元编程,体现了程序的动态之美. 对于 Java 系程序员来说,不大会使用 Ruby 编程, 更多会考虑 Java 的近亲 Groovy . 本文将简要介绍 Groovy 元编程的语言特性.Groovy 元编程基于 MOP 协议. 元编程特性 轻松运行时 在 Java 中,要访问私有实例变量或方法,…
create or replace function get_request_code return varchar2 AS --函数的作用:自动生成订单号 v_mca_no mcode_apply_01.mca_no%TYPE; CURSOR get_max_mca_no IS , )) -- 查出的最大单号,截取出最后三位,如:001.002...n FROM mcode_apply_01 , ) = to_char(sysdate, 'YYYYMMDD'); -- 截取单号,如:20170…
iBatis——自动生成DAO层接口提供操作函数(详解) 在使用iBatis进行持久层管理时,发现在使用DAO层的updateByPrimaryKey.updateByPrimaryKeySelective方法进行数据更新时,运行结果不一.因之前没有仔细研究过iBatis框架,现特此查询相关文章整理并记录自动生成的DAO层接口提供操作函数详细使用方式与区别如下: iBator生成的DAO层的接口提供了以下操作函数: 序号 方法名 参数 返回值 异常 作用 备注 1 countByExample…
背景 之前写过一篇博客,介绍怎么用Python通过解析抓包数据,完成自动化用例的编写.最近这段时间在使用go test,所以就在想能不能也使用代码来生成自动化用例,快速提升测试用例覆盖率.说干就干. 框架 首先介绍一下我们使用的测框架: 项 信息 安装 备注 GO版本 go1.12.9 darwin/amd64 略 测试框架 ginkgo go get -u github.com/onsi/ginkgo/ginkgo 断言库 testify/assert go get github.com/st…
最近领导让我找一个可以每次打包自动生成测试用例的东西,jenkins或者idea都可以, 最后找到了这个allure,也踩了很多坑,废话不多说!,总结一下: 1 使用原生allure 添加依赖: <!-- 依赖reportNg 关联testNg--> <dependency> <groupId>org.uncommons</groupId> <artifactId>reportng</artifactId> <version&g…
微软发布VS2017的时候,我第一时间离线一份专业版,安装到了自己的电脑上,开始体验,但是问题来了,在开发中建立类和接口的时候,说 明注释总要自己写一次,烦!~~于是还是像以前一样改IDE默认的类和接口的模板来实现,结果发现vs2017的和以前版本文件位置不一样,今天分享 出来我的修改,希望可以帮有同样需求的码友们 1.模板文件的路径. C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Ite…
使用vs nuget包管理工具搜索Swashbuckle 然后安装便可 注释依赖于vs生成的xml注释文件…
目前手里有个测试项目各个feature的测试用例都放在对应的子目录下,虽然有自动化测试框架的帮助执行起来很方便,但是偶尔也有需要在本地执行某个feature的全部测试用例集合.因为本人对shell脚本不熟悉,所以Ruby的问题还是用Ruby来解决. 每个测试脚本的命名遵循如下规范:Testlink ID + 测试用例名字.比如100_invalid_signature.rb表示该测试用例在Testlink里的ID是100,用来测试无效签名.在脚本的实现中,测试用例的名字就对应为TC_100.例子…
然后打开web程序,访问ip:port/Help. 为什么可以直接输入Help就能访问呢,因为这个插件本身已经配置了路径,如下. public class HelpPageAreaRegistration : AreaRegistration { public override string AreaName { get { return "HelpPage"; } } public override void RegisterArea(AreaRegistrationContext…
实验平台:Win7,VS2013 Community,GCC 4.8.3(在线版) 所谓元编程就是编写直接生成或操纵程序的程序,C++ 模板给 C++ 语言提供了元编程的能力,模板使 C++ 编程变得异常灵活,能实现很多高级动态语言才有的特性(语法上可能比较丑陋,一些历史原因见下文).普通用户对 C++ 模板的使用可能不是很频繁,大致限于泛型编程,但一些系统级的代码,尤其是对通用性.性能要求极高的基础库(如 STL.Boost)几乎不可避免的都大量地使用 C++ 模板,一个稍有规模的大量使用模板…
概述 Groovy 是一门基于JVM的动态类型语言,可以与 Java 平台几乎无缝融合(与Java代码一样编译成字节码). 使用 Groovy ,可以增强 Java 应用的灵活性和可扩展性,提升开发效率.使用 Groovy + Spock 组合也更容易编写简洁易懂的单测.熟练使用 Groovy 编程是很有益处的. 本文针对已有一定java开发经验,想要快速熟悉和使用Groovy语言的童鞋.本文会跳过变量.作用域等基础通用的编程内容,重点给出与Groovy相关的实用性的知识点. 变量定义 Java…
软件简介 Spring是一个流行的控制反转(IoC)和面向切面(AOP)的容器框架,在java webapp开发中使用广泛.http://projects.spring.io/spring-framework/ MyBatis是一个基于Java的数据持久层框架,其原名是iBatis,在升级到3.0版本后,更名为MyBatis.https://github.com/mybatis/mybatis-3/ MyBatis Generator是一个MyBatis的代码生成器,通过配置,可自动生成数据操作…
找到生成实体的路径,找到Database数据表 找到指定的路径即可自动生成entity实体 在创建好的实体类内如此修改 之后的步骤都在脑子里  写给自己看的东西 哪里不会就记录哪里 test类(以前都是手写) 自动生成 写好接口dao之后(注意接口实interface类型不是class)…
---整体更新一波--- 1.实际工作中,因为要动手输入的地方比较多,自动生成的异常接口用例感觉用处不大,就先去掉了,只保留了正常的: 2.接口有改动的,如果开发人员没有及时告知或没有详细告知,会增加一些不必要的麻烦,所以增加了文件对比功能: 目录: case_generate.py import sys sys.path.append('D:\Interface_framework_Beauty') import requests import os from common.operation…
整体思路和http://www.cnblogs.com/mahuan2/p/5859921.html相同. 主要讲maven的pom.xml和一些配置变化,详细说明. 软件简介 Spring是一个流行的控制反转(IoC)和面向切面(AOP)的容器框架,在java webapp开发中使用广泛.http://projects.spring.io/spring-framework/ Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程…
简介 feign对微服务之间的http调用做了一层封装,如果B项目想调用A项目的一个web服务,只需要编写对应的接口并标注FeignClient注解.但如果接口发生了变更,对应的Feign代码往往会忘记修改,而且问题往往在服务启动之后才能发现. feign-maven-plugin根据当前项目的jar包,自动生成对应feign部分的代码,并install到本地仓库.使用时,只需要在pom.xml中添加对应的依赖,在项目中继承自动生成的Feign接口,添加FeignClient注解即可. 如何使用…
目标 设计一个轻量级测试用例框架,接口测试编写者只需要编写测试用例相关的内容(入参及结果校验),不需要理会系统的实现,不需要写跟测试校验无关的内容. 思路 测试用例分析 一个用例由以下部分组成: (1) 测试用例名称 : (2) 接口名及URL/Path: (3) 接口入参: (4) 接口返回结果校验. 测试框架需要读取用例配置信息,根据指定接口及入参调用服务,并根据指定校验函数来对接口返回结果做检验,判断测试用例是否执行成功. 设计考量 为了灵活调用不同接口,针对以上的配置,(2) 采用 ht…
先把 Joshua Bloch 大神的 API PDF 放在这里膜拜下:"How to Design a Good API and Why it Matters.pdf" 总述 在设计和实现通用订单搜索API的过程中,收获了一点关于API设计的得与失.总结下,希望能给后面的工作带来有益的帮助. 什么是好的API ? 简洁.清晰.易懂.易使用. 语义行为与选项分离. Easy to learn Easy to use, even without documentation Hard to…
有一个.net自动生成平台(编程机器人)推荐给大家,常规几天十几天的工作,机器人几分钟搞定,不写一行代码,留下大把休闲时光,适应于聪明人:不想太累的程序员(看看风景泡泡妞),不想多请人的老板(有限资金用在关键) BS结构,读入需求文本文件,自动建立数据库表.自动建立数据库说明书文档,生成菜单,设置人员权限,建立录入等界面(支持一对多,一对多多等录入,如一个订单对应多个货品和多个组合),自动生成增删查修改前后页面,支持流程审批(支持短信提醒).自定义打印模板(包括条码),查询(多项组合查询,日期段…
查看本章节 查看作业目录 需求说明: 模拟网上商城购物,当用户选好物品提交订单时,每笔订单会自动生成一个唯一的订单编号.而部分电子商务网站在数据高峰期时,一毫秒可能需要处理近千笔的订单 现在简单模拟 5 个订单同时提交,生成唯一订单编号的场景.订单编号的生成规则是以毫秒为单位的当前时间+订单序号 例如,当前时间的毫秒数是 150000,那第 1 笔订单的编号就是 1500001,第 9 笔订单的编号就是 1500009 实现思路: 项目中创建订单类 Order(订单编号.订单金额.下单用户) 创…
一.题目要求 本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题. 这次我和我的小伙伴选择了题目一. 题目1: 实现一个小学四则运算自动生成程序,要求: 能够自动生成四则运算练习题 可以定制题目数量 用户可以选择运算符 用户设置最大数(如十以内.百以内等) 用户选择是否有括号.是否有小数 用户选择输出方式(如输出到文件.打印机等) 最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主) 二.分工 此次结…
得益于前辈的分享,做了一个h5录音的demo.效果图如下: 点击开始录音会先弹出确认框: 首次确认允许后,再次录音不需要再确认,但如果用户点击禁止,则无法录音: 点击发送 将录音内容发送到对话框中.点击即可播放.点击获取录音即可下载最后一次的音频: 播放下载都是围绕blob文件.播放就是让隐藏的audio标签的地址指向内存中的blob: this.play = function (audio,blob) { blob=blob||this.getBlob().blob; audio.src =…
1. 遗传编程简介 0x1:什么是遗传编程算法,和传统机器学习算法有什么区别 传统上,我们接触的机器学习算法,都是被设计为解决某一个某一类问题的确定性算法.对于这些机器学习算法来说,唯一的灵活性体现在参数搜索空间上,向算法输入样本,算法借助不同的优化手段,对参数进行调整,以此来得到一个对训练样本和测试样本的最佳适配参数组. 遗传编程算法完全走了另一外一条路,遗传编程算法的目标是编写一个程度,这个程序会尝试自动构造出解决某一问题的最佳程度.从本质上看,遗传编程算法构造的是一个能够构造算法的算法.…
1. 编写一个能自动生成小学四则运算题目的程序.(10分)   基本要求: 除了整数以外,还能支持真分数的四则运算. 对实现的功能进行描述,并且对实现结果要求截图.   本题发一篇随笔,内容包括: 题目:自动生成四则运算题目 主要功能: 设计思想: 源代码:(采用博客园工具栏提供的代码插入模板) 程序运行截图: 总结:       2. 上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?(提示:搜索一下Microsoft TFS,Github, SVN, Codin…
atitit.元编程总结 o99.doc 1. 元编程(Metaprogramming) 1 2. 元编程的历史and发展 1 3. 元类型and元数据 1 4. 元编程实现方式 2 4.1. 代码生成 2 4.2. lex和yacc分析器 2 4.3. 泛型编程 2 4.4. 注解 2 4.5. 解释型框架 2 4.6. 对象工厂概念,一个会写程序的程序! 3 4.7. Aop 3 4.8. 数据对象触发器和 可配置的插入式服务 3 5. 应用场景 4 6. 参考 4 1. 元编程(Meta …
首先,我们且不说元编程是什么,他能做什么.我们先来谈谈生产力. 同样是实现一个投票系统,一个是python程序员,基于django-framework,用了半小时就搭建了一个完整系统,另外一个是标准的SSM(Spring-SpringMVC-Mybatis)Java程序员,用了半天,才把环境刚刚搭好. 可以说,社区内,成功的web框架中基本没有不强依赖元编程技术的,框架做的工作越多,应用编写就越轻松. 那什么是元编程 元编程是写出编写代码的代码 试想以下,如果那些原本需要我们手动编写的代码,可以…
Java 元编程及其应用 首先,我们且不说元编程是什么,他能做什么.我们先来谈谈生产力. 同样是实现一个投票系统,一个是python程序员,基于django-framework,用了半小时就搭建了一个完整系统,另外一个是标准的SSM(Spring-SpringMVC-Mybatis)Java程序员,用了半天,才把环境刚刚搭好. 可以说,社区内,成功的web框架中基本没有不强依赖元编程技术的,框架做的工作越多,应用编写就越轻松. 那什么是元编程 元编程是写出编写代码的代码 试想以下,如果那些原本需…
编程的乐趣和挑战之一,就是将体力活自动化,使效率成十倍百倍的增长. 需求 做一个项目,需要返回一个很大的 JSON 串,有很多很多很多字段,有好几层嵌套.前端同学给了一个 JSON 串,需要从这个 JSON 串建立对应的对象模型. 比如,给定 JSON 串: {"error":0,"status":"success","date":"2014-05-10","extra":{"…