HiKariのTechLab

光の技术屋


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 站点地图

  • 搜索

【从零单排Golang】第一话:Go开发环境搭建——环境变量、依赖与目录结构踩坑

发表于 2019-07-20 | 更新于 2024-04-07 | 分类于 从零单排Golang

前言

Github传送门

当测试开发真不容易,入行第一年,就要在python、NodeJS、lua、C、Java等语言间无缝切换。为了快速响应需求,挺难抽出时间去深耕一门语言的特性(诶羡慕那些只搞Java的人= =)。在MTSC2019分享中也谈到,测试开发归属质量保障QA,作为一个中台角色,其终极任务保障研发效能,因此一大需求是打通产品研发运维的生产线。说到生产线就想到上云,说到上云就想到docker跟kube,说到跟容器的交互就想到了Golang。马蛋,又要学一门新语言了。

开这个坑,旨在展现以程序员的视角学习一门新语言的过程。希望大家看得欢乐。如果有启发,那就更棒啦!

安装与环境变量配置

家里的电脑是Windows,从官网即可下载Win的安装包。Go的版本为1.12。

下好后安装,安装完毕之后还需要设置环境变量(我的电脑——属性——高级系统设置)。GOROOT设置成Go的安装路径,还有一个关键的GOPATH,它表示你的工作目录,一般所有的Go项目,甭管第三方的还是你的,都统一放到这个目录下(从这点可以看出,Go的控制欲还是很强的)。GOPATH的一般结构如下:

阅读全文 »

【测试人生】安卓FPS测试详解

发表于 2019-07-13 | 更新于 2024-04-07 | 分类于 测试人生

安卓的fps测试,是我打开测试开发大门的一把钥匙。两年前的现在,安卓性能测试的相关资料甚少,以fps为例在网上也只有寥寥几篇文章讲述,但到了今年,已经有许多资料在各大技术论坛上供大家看到了。对于自己,一直想找一个机会把这一段技术探索写出来。所以,心动不如行动。

fps(frames per second),通常表示我们屏幕每秒展现的图片(帧)数,反映了一款应用在当前硬件下的性能消耗。比如我们抽CS的时候,就经常关注fps是否高,在高的情况下,就会有较好的流畅度。因此fps是应用性能测试中一个重要指标。

对于一个安卓app而言,为了测定fps数值,我们需要从安卓图形显示相关的模块入手。一个通用的方式是切入安卓的SurfaceFlinger服务,它是图形显示流程中软件层和硬件层的交互点,是极其关键的一环。SurfaceFlinger则是负责分析&合成各个app中的图层,而后将合成的图像数据交由硬件渲染。硬件渲染的机制复杂,因此安卓系统中,将硬件操作进行了抽象方便调用,我们将这一与SurfaceFlinger对接的层次,称之为硬件抽象层(HAL)。SurfaceFlinger与HAL在功能上有部分的耦合,一些Surface合成的工作,也会委托HAL进行。

那么我们该如何通过SurfaceFlinger获得fps数据呢?大体上,我们可以参考《Android性能测试之fps获取》一文。这种方式成功率高(虽然我家手机行不通),且不用root,较为方便

首先,通过adb,我们可以导出SurfaceFlinger服务的运行时信息。

阅读全文 »

【测试人生】MTSC2019参会见闻感悟

发表于 2019-07-01 | 更新于 2024-04-07 | 分类于 测试人生

“测试人生”第一篇文章,献给2019年的移动测试开发大会MTSC。这一次,非常荣幸能够来到北京国际会议中心参会,一睹国内质量保障工作的现状与未来的发展趋势。

在学校期间,我也参与过一些小型的学术会议,但并不如今年的MTSC这样声势浩大。工作一年以来参与的第一个讨论会,已然是全国顶会。借这个机会,能够了解到业内排头企业在质量保障业务上的解决方案,对于自己在业务理解上会颇有帮助。本次议程中,除了参与第一天主会场之外,第二天游戏测试专场也全程参与,收获颇丰,感悟良多,一言难尽。

阅读全文 »

【GitHub探索】新款命令行工具terminus测试

发表于 2019-06-22 | 更新于 2024-09-15 | 分类于 GitHub探索

前言

六月的Github趋势榜单上,除去一些文书、教程性质的项目外,大部分项目并非自己所针对的领域。因此,果断试水了一款软件,

Windows系统下的命令行工具配置,一直是开发者们纠结的痛点。在这一块,cmder、MobaXTerm甚至即将上线的Windows Terminal,都是不错的解决方案。

而今天介绍的这一款软件——terminus,在六月份跻身趋势排行前十,则似乎更加符合我们对命令行工具的影响。作为一个终端模拟器,terminus采用Angular + Electron开发,包含了终端模拟器必备的许多功能,兼具美观与实用性。我们可以首先来看看,terminus的界面长什么样子~

阅读全文 »

【Lua杂谈】犹豫就会败北——元表metatable解析

发表于 2019-06-12 | 更新于 2024-04-07 | 分类于 Lua杂谈

前言

在lua的学习过程当中,元表metatable的概念及用法是常见的障碍之一

元表,在其它lua杂谈等都提到过,是一种描述lua数据的属性以及行为的表。虽然官方给了set、account等例子详细讲解了metatable,但总还是缺乏些提炼。为了干翻这个痛点,这次,果断强上metatable的精髓。毕竟,犹豫就会败北~

元表有什么

我们首先就会有疑问:通过哪些属性指标,可以描述lua的数据呢?通过官方手册,我们可以很容易地找到答案。

在lua中,我们把元表中的key,也就是描述数据的属性指标,称之为event

我们可以把所有的event分为两组(括号中代表lua里的语法):

  1. 描述其基础性质的:

    • 属性索引:__index,__newindex
    • 长度:__len(#)
    • 函数形式:__call
    • 字符串形式:__tostring
  2. 描述其运算的:

    • 普通运算:__add(加+),__sub(减-),__mul(乘*),__div(除/),__mod(模%),__pow(乘方^),__unm(负-),__idiv(取整除//)
    • 位运算:__band(与&),__bor(或|),__bxor(异或~),__bnot(非~),__shl(左移<<),__shr(右移>>)
    • 关系运算:__concat(联结..),__eq(全等==),__lt(小于<),__lte(小于等于<=)

元表怎么用

先来看一段程序吧~

阅读全文 »

【DIY小记】Win10编程字体&主题设置全攻略

发表于 2019-06-01 | 更新于 2024-04-07 | 分类于 DIY小记

前言

编程需要纠结字体跟皮肤吗?肯定要纠结的啦= = = =

调理字体跟皮肤,就跟打扮房间一样。每当打开编程软件之时,要是看到清亮的字体,爽快的皮肤,心里肯定就特别踏实,码码起来肯定也就特别舒服。

是时候分享一下我的编程字体以及主题设置了!!!

阅读全文 »

【GitHub探索】python调试利器——pysnooper源码分析

发表于 2019-05-25 | 更新于 2024-04-07 | 分类于 GitHub探索

前言

这次又开了个新坑——GitHub探索,主要内容是试水当期GitHub上较火的repo

虽然top榜上各路新手教程跟经典老不死项目占据了大半江山,但清流总是会有的。

第一期就试水一下pysnooper吧,一个新奇实用的python调试器。

顺便源码分析一波,了解下python的debug操作。

废话不多说,进入正题~

pysnooper使用效果

通常,我们可以在函数上用pysnooper.snoop装饰器,给这个函数包装一个额外功能,实现在标准错误流打印函数debug信息的效果。比如说:

阅读全文 »

【Easy Python】最终话:重回首知识点,让python真正easy!

发表于 2019-05-19 | 更新于 2024-04-07 | 分类于 Easy Python

前言

Easy Python终于来到完结,我的领导也夸奖我写作非常的卖力用心。对此,我深表欣慰!

六章Python讲解,并不单纯是切磋代码技艺,而更是注重于每一行代码背后发生的事儿

为此,让我们一起重回首Easy Python系列,光荣收尾吧!

回顾

阅读全文 »

【Easy Python】第六话:multiprocessing——Python多进程并行

发表于 2019-05-11 | 更新于 2024-04-07 | 分类于 Easy Python

前言

前段时间,我和我的领导回到了母校,和我的师父师母聚餐。聚餐点了很多东西,大碗宽面,牛肉炒饭,韩国烤肉,吃都吃不完。虽然我的领导最近长得比以前p了些,但是吃饭速度还是慢悠悠。唉,要是我的领导能有个三头六臂,每个手都夹菜,每个头都去啃,那吃饭速度可就蹭蹭地涨上去了啊!

人无法三头六臂,但在Python里,我们可以做到。

并发&并行实验

要想实现三头六臂的效率,不走单一顺序流,我们不仅需要让多个任务能够并发(Concurrent),还能够并行(Parallel)运作。

假使吃饭吃到一半,人有三急,摘花回来继续用膳,那么如果把“吃饭”与“解手”当作两个任务,那么它们便是便是并发运作,但不并行。如果太追求效率,蹲坑恰饭,那便即是并发,也是并行了。

在Python中,我们可以用三种方式实现并发。但是并不是所有的方法,都支持并行。

这三种方法是:

阅读全文 »

【DIY小记】踏平Win10升级之坑——我们无法更新系统保留的分区

发表于 2019-05-01 | 更新于 2024-04-07 | 分类于 DIY小记

前言

前几天心血来潮,想把自己船上的Win10更新到18年10月的版本(1809),结果易升下载了更新之后,安装时提示“我们无法更新系统保留的分区”,于是一脸懵逼。

我们无法更新系统保留的分区

坑也是要慢慢踩的。熬了两夜,终于成功解决了这个问题,将Win10升级到了最新版本。

踩坑记录

原因分析

遇到这个问题后,笔者第一时间google百度了下解决方案,看到了以下几条:

阅读全文 »
1…171819
ひかり.HDQ

ひかり.HDQ

talk is cheap, code is rich
189 日志
14 分类
417 标签
GitHub Mail CSDN Juejin Steam Bilibili
© 2019 – 2025 ひかり.HDQ
|