
日常随笔
ssshen14
随笔和心得
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
自定义ClassLoader的实现
背景公司使用的是自己实现的RPC框架,有自己的传输协议和序列化方式,在RPC服务启动的时候,会扫描当前服务的lib目录,然后后加载以com.xxx开头的class文件,为接口的返回结果序列化为java Object做准备。2019年开始,通过不断的调研和思考,RPC服务接口测试平台初具雏形,在开发测试平台的时候,一直存在一个问题,测试平台肯定要能够为所有的RPC服务都提供测试能力,但是每个RP...原创 2020-02-16 16:10:21 · 677 阅读 · 0 评论 -
Junit5 动态执行测试类
Junit5 重新构造了junit5,支持在代码中执行测试类使用LauncherDiscoveryRequest、Launcher的方法实现public void executeByJunit5(String serviceName, String branch, String fileName) { //需要执行的测试类绝对路径 String testCase...原创 2019-12-26 16:55:24 · 1066 阅读 · 0 评论 -
kafka和hive一起使用,SparkSession StreamingContext一起使用
object RealTimeRequestParamCollect { // 在伪分布式中,一个spark 应用对应了一个main函数,放在一个driver里,driver里有一个对应的实例(spark context).driver 负责向各个节点分发资源以及数据。 // 那么如果你把创建实例放在了main函数的外面,driver就没法分发了。所以如果这样写在local模式下是可以成功的...原创 2019-12-12 21:17:30 · 968 阅读 · 0 评论 -
记一次配置fiddler转发请求(HTTPS)不生效的解决过程
一、背景同一个域名,其中一个前缀开头的请求需要分到192.168.187.170:8089才能正常访问,8089为web应用监听端口,也就是说这类特殊的请求不通过nginx处理前提:公司网络架构为:nginx–>web应用–>rpc服务二、首次配置fiddler script OnBeforeRequest方法中增加如下配置if (oSession.uriContains('...原创 2019-10-20 16:28:03 · 3316 阅读 · 0 评论 -
java指定目录下的jar加到classloader中
List<URL> libUrls = new ArrayList<URL>();// contract依赖的所有jar,加到classloader的classpath中File libPath = new File(Const.ROOT_TESTCASES_PATH + File.separator + Const.SERVICE_PREFIX + serviceNa...原创 2018-07-16 16:11:56 · 1089 阅读 · 0 评论 -
扫描Class文件,获取所有可调用方法及方法的入参等信息
主要思路: 1.从gitlab上下载contract源码,使用org.eclipse.jgit 2.mvn编译并把生成的jar和依赖的jar拷贝到指定目录下,使用org.apache.maven.shared maven-invoker 3.扫描源码列出所有以I开头,以.java结尾的文件绝对路径getCanonicalPath() 4.根据第三步的文件绝对路径,切割转换出classNa...原创 2018-07-16 16:35:48 · 1175 阅读 · 0 评论 -
python heapq简述 从https://github.com/qiwsir/algorithm/blob/master/heapq.mdfuzh复制
python中的堆排序peapq模块heapq模块实现了python中的堆排序,并提供了有关方法。让用Python实现排序算法有了简单快捷的方式。heapq的官方文档和源码:8.4.heapq-Heap queue algorithm下面通过举例的方式说明heapq的应用方法实现堆排序#! /usr/bin/evn python#coding:utf-8from he...转载 2018-07-11 11:40:54 · 888 阅读 · 0 评论 -
自动生成testng.xml
工作中接到一个任务,调研是否可以实现rpc服务自动diff功能。本篇是其中的一个子功能,测试类的testng.xml自动实现。实现原理: 1.实例化XmlSuite类 2.扫描目录下所有的classes文件,然后遍历class的所有方法是否包含@Test注解 3.步骤2中的必要信息放到XmlSuite中 4.保存XmlSuite到指定位置主要方法:/** * 生成test...原创 2018-07-24 14:31:10 · 1817 阅读 · 0 评论 -
java在运行时动态编译.java文件,转载Stack OverFlow
原始地址:https://stackoverflow.com/questions/27608408/compiling-a-class-at-runtime-with-classpathI’m currently trying to compile a class at runtime but for some reason it’s only working on one system. B...转载 2018-07-19 11:23:48 · 308 阅读 · 0 评论 -
公开课,业余时间分享了一节公开课,有需要的朋友可以看看
腾讯课堂:https://ke.qq.com/course/329678?tuin=1b04813e 公开课内容:抓包工具fiddler讲解原创 2018-09-07 17:00:26 · 327 阅读 · 0 评论 -
RPC服务测试新思路
RPC服务测试新思路原创:转转QA转转QA引言为了保证RPC服务的稳定,最大可能的防止BUG带到线上,测试过程中对RPC服务做接口测试是必要的步骤。目前的通用做法是在测试框架中引入被测服务的contract 包,再基于contract包开发对应的接口测试代码,并尽量全面的构建覆盖多个场景的入参。目前的方式有几方面不足: 必须有一定Java基础的测试同学才能够胜任; ...转载 2019-04-02 11:00:53 · 2356 阅读 · 0 评论 -
select2动态添加option
select2动态添加option背景html原来的实现javascirpt实现后端接口返回取值修改后javascript实现后端接口返回结果取值结论背景select2 使用ajax remote加载数据方式时,不能使用$(’#select2’).val();的形式获取option的value,为了统一代码风格,需要把请求接口返回的结果以optin的形式动态添加到select2组件上。htm...原创 2019-06-20 17:21:16 · 7081 阅读 · 0 评论 -
jdk8删除非空文件夹,拷贝自StackOverflow
import java.io.File;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.util.Comparator;/** * 多个文件相关的复杂操作,组合到一起 * * @author shenyanfang * @date 2018年...转载 2018-07-16 16:03:59 · 2116 阅读 · 0 评论 -
记一次crontab 报“abrt: detected unhandled Python exception in ”错误的解决过程
题记 上周把一个python服务迁移到新的机器上,顺带着需要把python写的一个后台任务也迁移到新的机器。但是在新的机器上python的定时任务就是不执行。下面记录一下自己的解决过程,以备以后查阅。现象 先来看一下现象: 首先查看 vi /var/log/cron文件,看定时任务是否执行了,从该文件可以看到任务确实执行了 接下来查看vi /var...原创 2018-04-13 19:23:06 · 9248 阅读 · 0 评论 -
eclipse 4.5 离线安装mybatis generator1.3.6卡在Install New Software的解决方法
eclipse Mars Release (4.5.0) 离线安装 Mybatis generator 1.3.6 卡在Install New Software的解决方法原创 2018-04-19 14:28:59 · 1775 阅读 · 0 评论 -
Class.forName() 与 ClassLoader.loadClass()的区别
1.从google搜到的资料显示Class.forName()会执行类的初始化操作,static区域会被执行,ClassLoader.loadClass()不会执行初始化操作http://stackoverflow.com/questions/4285855/difference-betweeen-loading-a-class-using-classloader-and-class-forn原创 2017-08-30 18:14:15 · 271 阅读 · 0 评论 -
一、python 生成一维码
html: <!DOCTYPE html><html><head> <meta charset="UTF-8"> <script type="text/javascript" src="/static/js/jquery-2.1.0.js"></script> <link rel="stylesheet" href="/static/css/select2.min.cs原创 2017-09-01 11:12:17 · 5004 阅读 · 0 评论 -
二、文字转成图片,图片上写字
文字转成图片:def text2Image(self): text = u"这是一段测试文本,test 123。" im = Image.new("RGB", (300, 50), (255, 255, 255)) dr = ImageDraw.Draw(im) font = ImageFont.truetype(os.path.join原创 2017-09-01 11:38:03 · 831 阅读 · 6 评论 -
三、python调用打印机,打印文字
代码:import win32printimport win32uiimport win32condef print2Printer(self): INCH = 1440 hDC = win32ui.CreateDC () hDC.CreatePrinterDC (win32print.GetDefaultPrinter ()) hD原创 2017-09-01 11:38:49 · 17969 阅读 · 4 评论 -
四、python图像合并,打印图片
生活中肯定会遇到两张图片或多张合并成一张图片的情况,下面使用python+Pillow 实现这个目的。 代码:import win32printimport win32uiimport win32confrom barcode.writer import ImageWriterfrom barcode.codex import Code39from PIL import Image, I原创 2017-09-01 14:19:39 · 4200 阅读 · 0 评论 -
Windows bat脚本获取administrator权限
代码:@echo offecho 获取Administrator权限cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nulif %errorlevel%==0 goto Adminif exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"echo Set原创 2017-09-03 09:43:55 · 21857 阅读 · 0 评论 -
附加4个行业的对比表格
继续推销自己写的小工具:https://github.com/shenyanf/SuitableStocks附带4个行业的对比表格 港口航运.xls 环保工程.xls 零售.xls 汽车整车.xls链接:http://pan.baidu.com/s/1gfCdyHP 密码:wl4l原创 2017-09-12 18:02:13 · 447 阅读 · 0 评论 -
suitablestocks
github地址:https://github.com/shenyanf/SuitableStocks 附带4个行业的对比表格,链接:https://pan.baidu.com/s/1gfCdyHP 密码:wl4l原创 2016-01-17 12:06:01 · 315 阅读 · 0 评论 -
一维码的规则Code39 EAN13
之前使用pyBarcode瞎B修改生成的图片大小,造成生成的条码竟然扫码枪竟然扫不出来,汗。。。 特地去恶补了一下各个编码的要求,也算给自己留个记录。 原来编码还要求宽度,比例,编码前后的空白区等等。。。EAN13编码示例图 参考文章: 中国物品编码中心: http://www.ancc.org.cn/2014/tiaoma/index.html EAN-13条形码编码规则: htt原创 2017-09-12 18:28:02 · 1619 阅读 · 0 评论 -
python2.7 maketrans工作原理
今天用到了python str maketrans,顺道看了一下实现原理,做一下记录# Case conversion helpers# Use str to convert Unicode literal in case of -U# 把ascii表的字符放到list中l = map(chr, xrange(256))# 把list转换为str_idmap = str('')....原创 2018-02-28 17:20:54 · 594 阅读 · 0 评论 -
python2.7.14 translate解释
先把源码放在这里PyDoc_STRVAR(translate__doc__,"S.translate(table [,deletechars]) -> string\n\\n\Return a copy of the string S, where all characters occurring\n\in the optional argument deletechars are remo原创 2018-03-09 17:04:49 · 472 阅读 · 0 评论 -
fences 桌面整理,超赞,强烈推荐
工作时间长了之后,桌面就会变得很凌乱,常用的文档,临时下载的文件,别人传过来的文件等等,每次看到这样的桌面就崩溃,在我千辛万苦,查了几天google加实验了好几个工具之后,发现fences简直完美符合我的要求,安装了它之后,桌面再也没有乱的不成样子了,现在我的桌面如下: 临时测的项目、常用的软件、参考手册、常用文件,便于整理,双击空白地方,就会全部隐藏 oschina上传不了大的附件,放到csd原创 2017-08-30 17:48:32 · 12716 阅读 · 102 评论