avatar
写 bug 的大耳朵图图
Pytest参数介绍
分类 参数 作用 general -k 支持python的表达式,用于筛选指定标记/方法名的用例 -m 根据用例标签来筛选用例,设置标签可以使用 @pytest.mark.<标签名> --markers 打印标签,包括内置的,插件的,还有自定义的 -x 第一个error或failed的test就退出 --fixtures 显示可用的fixture,包括内置和自己写的,如果fixture使用 "_"开头则需要使用-v才能显示此fixture --fixtures-per-test 展示每条用例的fixture --pdb 当用例出现错误或者被键盘中断…
avatar
写 bug 的大耳朵图图
EasyExcel——自定义单元格样式
之前在开发系统的导出功能时需要对单元格增加不同的样式,过程有点曲折,记录一下以备后续用到 创建java项目,引入以下依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>3.2.1</version> </dependency> excel 导出代码 try (ExcelWriter excelWriter = EasyExcel.write(filePath).build()) { WriteSheet sheet = EasyExcel.writerSheet("自定义样式") // 设置表头 .head(ExportHeaderDTO.class) // 不使用默认样式 .useDefaultStyle(Boolean.FALSE) // 添加自定义单元格样式 .registerWriteHandler(new CustomCellWriteHandler()) // 添加单元格边框样式…
avatar
计算机天才
nginx搭建http server乱码的相关问题
nginx在location中charset写utf-8,但是WinSCP文本在写的默认是GBK编码的,所以要切换成utf-8。 最好不要把nginx的编码换成gbk,因为linux默认是utf-8的,想要最省事,就全部换utf-8
avatar
写 bug 的大耳朵图图
EasyExcel——自定义字段导入
1.背景 原先的导入功能只支持使用固定模板导入,模板格式如下: @Getter @Setter @ToString public class TestCaseExcelData { @ExcelProperty(value = "所属功能模块") private String module; @ExcelProperty(value = "用例编号") private String code; @NotBlank(message = "必填项不能为空") @ExcelProperty(value = "*用例名称") private String name; @NotBlank(message = "必填项不能为空") @ExcelProperty(value = "*优先级") private String caseLevel; @NotBlank(message = "必填项不能为空") @ExcelProperty(value = "*用例类型") private String caseType; @ExcelProperty(value = "用例标签") private String tags; @ExcelProperty(value = "前置条件…
avatar
计算机天才
rust中String,&str,Vec 和&[u8]的惯用转换
https://zhuanlan.zhihu.com/p/372082802
avatar
计算机天才
CloudStudio解决一次Docker启动不了的原因
https://docs.docker.com/config/daemon/ https://docs.docker.com/storage/storagedriver/select-storage-driver/ https://docs.docker.com/storage/storagedriver/overlayfs-driver/ failed to start daemon: error initializing graphdriver: driver not supported 原因可能是这个。 这机子我真是操了,问题不断 https://docs.drone.io/plugins/popular/docker/#docker-in-docker-issues 这破B机子本身就是一个docker,docker in docker的万一启动这个docker的时候没有-privileged,正常搞就是没权限了 还是搞vps吧
avatar
Rei
GeekNote 一些设计更新
今天 GeekNote 上线了一些设计更新,本文列出有什么变化以及背后的思考。 文章页使用双栏和卡片设计 之前 GeekNote 一直存在两种设计语言,一种是双栏卡片的设计,例如首页和内容管理页,一种是单栏无边框的设计,例如文章页和编辑器。我希望阅读页面尽可能少的干扰,所以分开了两种设计。 但我不得不承认无边框设计很难驾驭,缺少审美做出来只会显得页面惨淡。卡片设计更容易区分页面各个部分的关系,容易引导注意力…
avatar
xfyuan
等待测试之际
本文已获得原作者( Jorge Manrubia )和 37signals 授权许可进行翻译。原文分享了一个关于 TDD 测试的观点。 原文链接:Pending tests 作者:Jorge Manrubia(Github、Twitter),居住于西班牙瓦伦西亚,目前工作于 37signals,诸多 Ruby、Rails 的 Gem/Library 的作者,比如:Active Record Encryption(已被纳入 Rails 7 成为默认特性)、mass_encryption、console1984、audits1984、ib_ruby_proxy、impersonator、turbolinks_render 等 站点:37signals 以创建了 Basecamp 和 HEY 而举世闻名,也撰写了很多商业和软件相关的书籍(Getting Real, REWORK, REMOTE, It Doesn’t Have…
avatar
写 bug 的大耳朵图图
IDEA插件整理
Atom Material Icons material风格图标库,装完之后页面就花里胡哨的,挺好看 Material Theme UI material风格主题,还是挺好看的 One Dark Theme 暗黑风格主题(推荐),主要是免费 Rainbow Brackets 彩虹括号 .ignore 生成各类.ignore文件,在创建git仓库的时候使用此插件格外方便 CodeGlance 代码缩略图,方便定位代码 Java Bean to Json 在bean上右键,即可将此bean复制为json格式,在构造请求时比较方便 maven-search maven/gradle坐标搜索插件,贼好用,支持模糊搜索 Maven Helper 依赖冲突查看…
avatar
写 bug 的大耳朵图图
深入学习Requests库
HTTP HTTP的诞生——为知识共享 1989 年 3 月,互联网还只属于少数人。在这一互联网的黎明期, HTTP 诞生了。 CERN(欧洲核子研究组织)的蒂姆 · 伯纳斯 - 李(Tim BernersLee) 博士提出了一种能让远隔两地的研究者们共享知识的设想。 最初设想的基本理念是:借助多文档之间相互关联形成的超文本 (HyperText),连成可相互参阅的 WWW(World Wide Web,万维 网)。 现在已提出了 3 项 WWW 构建技术,分别是: 把 SGML(Standard Generalized Markup Language,标准通用标记…
avatar
写 bug 的大耳朵图图
移动端UI自动化技术调研
关键词 Python Airtest Cucumber Gherkin Android/IOS自动化 BDD 背景 实现公司内部移动端产品自动化测试,主要是IM功能 需要支持IOS和Android平台 可以持续集成 要求上手难度低,便于维护 技术选型 UIAutoMator2 uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库。其底层基于Google uiautomator,Google提供的uiautomator库可以获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作。 github: https://github.com/openatx/uiautomator2 优点: 设备和开发机可以脱离数据线,通过WiFi互联…
avatar
写 bug 的大耳朵图图
EasyExcel——解决自定义样式太多导致的 The maximum number of Cell Styles was exceeded 异常
之前使用自定义样式解决了导出excel时,对不同单元格使用不同样式的需求,见EasyExcel——自定义单元格样式。但是最近发现,导出大量数据时,就会产生如下异常 java.lang.IllegalStateException: The maximum number of Cell Styles was exceeded. You can define up to 64000 style in a .xlsx Workbook 通过查看easyexcel在github上的issue可以发现,有很多人都出现了类似问题,原因是EasyExcel最多支持创建64000个样式对象。但是我写入的数据远远超过了64000,每次写入数据都会去…
avatar
写 bug 的大耳朵图图
FileBeat+LogStash实现MySQL慢查询日志解析
背景是一个大型营销系统经常出现mysql的慢查询,导致线上服务频繁出现故障,为了查看是哪些sql有问题,并且要支持各种维度的统计查询,所以使用FileBeat+LogStash+ElasticSearch+Kibana实现此需求。本文仅描述如何配置FileBeath和LogStash实现MySQL慢查询日志解析。 FileBeat配置 filebeat.inputs: - type: log enabled: true # 忽略在指定的时间跨度之前被修改的文件 ignore_older: 30000h # mysql慢查询日志目录,支持*通配符匹配多级目录 paths: - /opt/slow-sql/*.log # 文档类型是mysqlslow,这是filebeat内置的一套规则…
avatar
计算机天才
vscode ssh远程连接服务器相关问题
建立$home/.ssh/config文件,文件内容如下 # Read more about SSH config files: https://linux.die.net/man/5/ssh_config Host debian HostName xx.xx.xx.xx User root Port 22 连接后会输入密码,有时候会有一直要输入密码的问题,还有连接很卡很慢的问题。 https://www.cnblogs.com/zuozhengjun/p/15570053.html https://stackoverflow.com/questions/56892931/how-to-kill-vscode-remote-services-on-ubuntu-host 配置私钥登陆(免密码) https://zhuanlan.zhihu.com/p/222452460 不用输密码速度快了不少, 不过还是老是…
avatar
计算机天才
Proxifier代理软件的使用
这软件类似于linux下的proxychains4 win上,拦截软件(非http\https协议)封包一般两种方式,一是搞个dll注入hook send和sendto拦截tcp和udp,之前我也一直这样搞,但是这样很麻烦。 今天发现了个好东西,Proxifier可以用wfp技术在驱动端做流量重定向,然后用python写个socks客户端就很方面的监控流量和改包。 研究socks5协议的比较好的文章 https://www.ddhigh.com/2019/08/24/socks5-protocol.html https://www.cnblogs.com/tellw…
avatar
xfyuan
分形之旅
本文已获得原作者( Jorge Manrubia )和 37signals 授权许可进行翻译。原文提出了一个对于好代码应该具备哪些品质的思考。 原文链接:Pending tests 作者:Jorge Manrubia(Github、Twitter),居住于西班牙瓦伦西亚,目前工作于 37signals,诸多 Ruby、Rails 的 Gem/Library 的作者,比如:Active Record Encryption(已被纳入 Rails 7 成为默认特性)、mass_encryption、console1984、audits1984、ib_ruby_proxy、impersonator、turbolinks_render 等 站点:37signals 以创建了 Basecamp 和 HEY 而举世闻名,也撰写了很多商业和软件相关的书籍(Getting Real, REWORK, REMOTE…
avatar
Ellen
test
test
avatar
计算机天才
RT-Thread SD卡初始化失败相关问题
就差这一句延时,真的坑B sd卡必须先初始化fat32格式。 mkfs -t elm sd0 不得不说RT-Thread Studio确实比较方便
avatar
xiaolixiao
CompleteFuture的实现原理
public static <K> Boolean getBoolean(final Map<? super K, ?> map, final K key) { if (map != null) { final Object answer = map.get(key); if (answer != null) { if (answer instanceof Boolean) { return (Boolean) answer; } if (answer instanceof String) { return Boolean.valueOf((String) answer); } if (answer instanceof Number) { final Number n = (Number) answer; return n.intValue() != 0 ? Boolean.TRUE : Boolean.FALSE; } } } return null; }
avatar
计算机天才
两种API接口的优势和劣势
int do(char* p,arg){ buffer = p; ... } int do(arg){ buffer = os.alloc(); ... } 一种是使用用户分配的内存,一种是用在函数内用库函数分配内存,第二种显然更省事,但是如果有强移植性需求(不管是win,linux,arm,各种移动端和嵌入式端等),就用第一种。 tensorflow lite教我的