自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(282)
  • 收藏
  • 关注

原创 ChatGPT训练营来啦,手把手带你玩转ChatGPT~

首先,ChatGPT的出现在测试领域中产生了巨大的影响,它为测试人员的测试工作带来了诸多便利。以下是小编借助ChatGPT实现测试工作的案例分享,如果大家有更多利用ChatGPT实现的测试工作,也欢迎报名本次训练营后进群交流分享,让更多人了解ChatGPT在测试领域中的应用。由导出的思维导图可以看出,ChatGPT生成的测试点非常全面,涵盖了多个方面的测试需求。尽管许多人担心它的强大可能会取代测试人员,但实际上ChatGPT可以成为测试人员的强大助手,提高测试工作的效率和准确性。不要错过这个难得的机会哦~

2023-04-13 15:48:19 497 1

原创 卷积神经网络的常用改进

如果我们的数据,包括图片、文本、音频等,如果尺寸变化幅度比较大,是否可以考虑将样本尺寸相近的数据放到同一个batch,网络中不使用全链接,实现动态尺度模型。注意同一个batch里的数据需要是同样的尺寸,我们都会进行pad,所以常用做法是将尺度相近的图片放到同一个batch里,padding后变成同一个尺寸。落地部署中,我们不仅关注准确度,可能更关心响应时间,因此模型不能太复杂,全卷积是一个很好的思路。1.去掉全链接层,使用全卷积神经网络,1*1卷积层控制输出尺寸。1卷积,控制channel为10。

2023-02-28 14:36:19 381

原创 Tensorflow 2.x 模型-部署与实践

Tensorflow 2.x 模型-部署与实践

2023-02-28 14:22:35 284

原创 JAR 文件规范详解

JarIndex机制收集applet中定义的所有jar文件的内容,并将信息存储在索引文件中,该索引文件位于applet类路径的第一个jar文件中。当类加载器加载根jar文件时,它读取INDEX.LIST文件,并使用它构造哈希表,哈希表是从文件和包名称到jar文件名列表的映射。Magic属性的值是一组逗号分隔的特定于上下文的字符串。当类加载器加载第一个jar文件,并在META-INF目录中找到INDEX.LIST文件,它将构造索引哈希表并为扩展使用新的加载方案,否则,类加载器将只使用原始的线性搜索算法。

2023-02-28 14:19:01 1133

原创 黑盒测试中-关键截图-的打点方案

黑盒测试中-关键截图-的打点方案

2023-02-28 14:17:41 108

原创 为什么要学习TypeScript

布尔值 - boolean , 数字 - number ,字符串 - string ,数组 - Array ,元组 - Tuple ,函数 - Function , 对象 - Object ,操作符 - void,Symbol - 具有唯一的值 ,undefined 和 null 初始化变量 ,any - 如果不指定一个变量的类型,则默认就是any类型 , never - never表示永远不会有返回值的类型 ①.函数抛出异常 ②. 死循环。调用的时候,根据函数的参数来区别不同的函数。

2023-02-28 14:15:23 96

原创 少数据量情况下的深度学习模型训练效果提升技巧

在进行目标识别的过程中,获取大量的数据是一件比较困难的事,但好的模型往往是基于大的数据集训练而来的。即使待识别的图像存在一些缺陷,也能够准确的识别出目标。针对不同的数据,应根据数据和待识别目标的特点对数据集进行扩充,目前大多数目标识别框架都做了相关的数据扩充,但这些数据扩充的方式不一定适合自己的训练数据,因此要结合自己数据,避免重复和无意义的操作。数据扩充已被证明是一种有效的提高模型鲁棒性的方法,扩充的方法也有很多,但需要结合自己的数据和目标的特征进行具体分析,选择合适的方法,才能有效的提升模型的性能。

2023-02-28 14:10:29 386

原创 从Java8升级到Java11

从Java 11开始,OpenJDK major version的发布间隔差不多是半年,不用全部都要去关注,都是追赶,但是LTS版本,需要去追赶,去升级,Java11就是最新的LTS版本,下一个或者再一下major version,很可能又是一个LTS版本;虽然目前使用Java 8都挺好的,现实是Java 8的一些特性会被往后移植,但是后续版本的特性和优化不会再被集成到Java 8中了。Java 8 中的流已经很强大了,而且只要涉及到 IO,只要涉及到对一系列数据进行操作,都会用到流。

2023-02-28 14:10:09 1303

原创 一种通过云配置处理应用权限弹框的方案

在进行目标识别的过程中,获取大量的数据是一件比较困难的事,但好的模型往往是基于大的数据集训练而来的。尤其是在做项目的过程中,用户上传的测试数据与我们用于训练的数据之间的差异难以把控,可能会因为一些不相干的因素(角度不同,模糊度不同,目标大小不同等)的干扰而导致识别的效果不够理想。针对不同的数据,应根据数据和待识别目标的特点对数据集进行扩充,目前大多数目标识别框架都做了相关的数据扩充,但这些数据扩充的方式不一定适合自己的训练数据,因此要结合自己数据,避免重复和无意义的操作。

2023-02-28 14:07:02 67

原创 相比 Selenium,Web 自动化测试框架 Playwright 有哪些强大的优势?

mvn exec:java -e -Dexec.mainClass=com.microsoft.playwright.CLI -Dexec.args="codegen --viewport-size=800,600 地址"因为一旦设定了 Trace,代码执行过程中的每一个步骤,都有详细的截图,日志,时长的信息,比起功能测试的过程记录信息还要更加全面。在做自动化测试过程中,常常会碰到的一个痛点问题:自动化测试明明发现了代码的 BUG,但是复现比较困难,研发又不认账。

2023-02-25 11:09:41 253

原创 Python中日志异步发送到远程服务器

究其原因是由于emit方法中使用 async with session.post 函数,它需要在一个使用async 修饰的函数 里执行,所以修改emit函数,使用async来修饰,这里emit函数变成了异步的函数, 返回的是一个 coroutine 对象,要想执行coroutine对象,需要使用await, 但是脚本里却没有在哪里调用 await emit() ,所以崩溃信息 中显示 coroutine ‘CustomHandler.emit’ was never awaited。

2023-02-21 15:39:20 190

原创 前端对 Axios 封装的接口统一处理

在vue项目中,和后台交互获取数据这块,我们通常使用的是Axios库,它是基于promise的http库,可运行在浏览器端和node.js中。所以我们的尤大大也是果断放弃了对其官方库vue-resource的维护,直接推荐我们使用Axios库。例如上面的思想:如果后台返回的状态码是2000,则正常返回数据,否则的根据错误的状态码类型进行一些我们需要的错误,其实这里主要就是进行了错误的统一处理和没登录或登录过期后调整登录页的一个操作。这个很重要,如果没有序列化操作,后台是拿不到你提交的数据。

2023-02-21 15:34:37 306

原创 提高Android云真机稳定性的方法

在python中 time.sleep() 函数是个阻塞函数, 会阻塞python的运行, 使用tornado做web项目,你不可能只为一个用户服务,当有多个用户访问同一个接口时,python在处理sleep操作时会阻塞运行,这时后来的请求也要等待前的请求,只有当前面的请求结束以后再处理,这也就是为什么上面的压测最短是503ms,最长却需要50240ms的原因.因为大家是阻塞进行的。依然强悍, QPS继续上升到305,而且仅多用了1秒钟.如果再继续提高用户量,我们来看看它的极限在哪里?

2023-02-21 15:33:43 84

原创 Thinkphp5 集成 Swoole

Thinkphp5 集成 Swoole

2023-02-21 15:25:37 554

原创 Jenkins 集成 Android 代码检查

Android lint是一个静态代码分析工具,通过lint工具,你可以不用边运行边调试,或者通过单元测试进行代码检查,可以检测代码中不规范、不和要求的问题,解决一些潜在的bug。可以直接在Android stuido中调用,也可以通过命令行./gradlew lint 执行,当然也可以集成到jenkins中,每次编译的时候都执行代码。如上面这个问题,很明显是由于项目配置的支持最小SDK版本是14,可是工程中却使用了SDK必须大于19才能使用的api,当工程运行在低版本的手机时,就很容易发生各种异常。

2023-02-21 15:23:28 179

原创 Python-Jenkins 如何操作 Job/View模块

Python-Jenkins 如何操作 Job/View模块

2023-02-17 13:31:18 395

原创 相似图像的检测方法

从检测结果中可以看出,针对上述的数据,基于vgg16和sift特征的检索结果会更加的准确和稳定,基于直方图检索出的图与待检测的图也都比较相似,而基于BOW和哈希算法检索出的结果表现则不稳定,基于orb特征检索出来的图和待检测图差距很大,效果很不理想。因此,可以根据自身数据的特点和不同方法的特性来综合考虑。对于待检测图片,进行与图片数据库中同样方式的编码或特征提取,然后计算该编码或该特征向量和数据库中图像的编码或向量的距离,作为图像之间的相似度,并对相似度进行排序,将相似度靠前或符合需求的图像显示出来。

2023-02-17 13:30:05 1245

原创 堆排序原理及实现

其实堆是有记忆功能的,就是因为他自身的结构,每个结点的值都大于或等于其左右孩子结点的值(这是大顶堆,小顶堆则是每个结点的值都小于或等于其左右孩子结点的值),这就是记忆!首先由普通的数列联想到完全二叉树,然后利用完全二叉树的特性来实现记忆的功能,从而提高运行效率,只能由衷的佩服这个算法的提出者,太厉害了。将待排序的序列构建成为一个大顶堆,其实就是从下往上,从右到左,将每个非终端结点(非叶结点)当作根结点,将其和其子树调整成大顶堆。它们都是有孩子的结点。小白们也很熟悉的:冒泡,归并,简单选择,归并,堆排序。

2023-02-17 11:15:38 488

原创 一种基于视频帧差异视频卡顿检测方案

循环遍历视频帧,获取每一帧的TI2值,如果当前的TI2值 Dfact * Mdrop, 任务当前帧不存在卡顿,把视频所有的帧按找时间顺序排序后,就是我们当前视频卡顿检测的列表值。在近乎静态的场景和动态的场景中,由于像素的变动很小,或者像素变动很大,卡顿的帧/丢失帧会存在少量/大量的运动信息,在确定运动水平的时候需要涉及主观直觉的要素,所以需要利用动态阈值来确定卡顿的视频帧。

2023-02-17 11:12:06 302

原创 Lambda表达式介绍和底层实现分析

所以使用lambda表达式的地方,会在类编译的时候在本类中生成对应的私有静态方法和一个INNERCLASS的访问标识(具体是什么东西没找到资料,注释显示是一个访问标识),该访问标识会调用引导类加载器动态生成内部类,该内部类实现了函数式接口,在实现接口的方法中,会调用编译器生成静态方法,在使用lambda表达式的地方,通过传递内部类实例,来调用函数式接口方法。函数式接口本身就是一个普通的接口,而lambda表达式本质上和匿名内部类是一样的,只不过条件更加苛刻。

2023-02-17 11:01:40 132

原创 分布式锁的那些事

Redisson除了上面列出的基本的可重入锁之外,还提供了公平锁、联锁、红锁、读写锁、信号量等多种锁的方式,感兴趣的同学可以前往Redisson的github查看研究,希望本片内容可以帮助你在工作中更合理的选择和正确的使用分布式锁。这时会有细心的同学发现了,之前的写法依次增加了锁超时时间,加锁和设置超时的原子化,解锁的防误解锁和解锁的原子化操作,但是Redisson加解锁的写法从表面上是看不出来是否有这些特性。如果A线程拿到锁后,业务逻辑的执行超过30秒,A线程的锁会自动释放。

2023-02-17 11:00:38 75

原创 ThinkPHP 接口开发过程

其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件。**Controller层:**包含业务接口层、业务逻辑层、实体层、数据访问层Action控制器作为业务接口层,提供系统各种业务操作的入口。**Model层:**支持的数据库有MySql、MsSql、PgSql、Oracle、Sqlite,数据库的选用和业务逻辑没有关系。**View层:**包含模板视图、用户界面、JS、Flash等通过模板引擎的支持,可以使用标签定义简化表现层的定义工作。

2023-02-17 10:59:11 258

原创 Android App 保活服务的配置与禁用

Android应用的保活一般会从两个方面着手:一是如何提高应用的存活周期;Android应用可以在运行时注册系统账户,并通过service与系统账户进行关联,当系统运行时会在特定时期同步账户,同步账户的时候会启动所关联的service,在关联service中可以检查保活方案,通过账户同步机制可以唤醒被关闭的应用。以华为系统为例,在【手机管家】app中找到【应用启动管理】,并在应用启动管理中找到对应的app,将对应app切换为【手动管理】,并为激活【允许自动启动】【允许关联启动】【允许后台活动】三个选项。

2023-02-17 10:52:59 1393

原创 分布式锁的实现方案

Prefix机制:即前缀机制。在实现分布式锁时,如果抢锁失败,可通过 Prefix 机制返回的 KeyValue 列表获得 Revision 比自己小且相差最小的 key(称为 pre-key),对 pre-key 进行监听,因为只有它释放锁,自己才能获得锁,如果 Watch 到 pre-key 的 DELETE 事件则说明 pre-key 已经释放,自己已经持有锁。Lease 机制可以保证分布式锁的安全性,为锁对应的 key 配置租约,即使锁的持有者因故障而不能主动释放锁,锁也会因租约到期而自动释放。

2023-02-12 11:13:41 78

原创 Aiomysql 与 Sqlalchemy 的使用

但是我们做项目,又很少能过遇到修改数据库的情况,所以是否要使用sa,看各位的需求!上面无论是使用aiomysql还是使用sa,都没有使用外键进行约束,关于是否使用外键,业内有两种不同的意见,支持使用的会认为,人为的写程序难免会有bug, 会有不注意的地方,就好比jobs表中插入了一个userid为100的数据,但是userid为100的用户并没有在user表中,这时如果使用外键约束,则插入会失败. 在mysql数据库的层面上对数据一致性增加了一层保障。但是这里我们来看一个老生常谈的问题,sql注入问题。

2023-02-12 11:09:36 410

原创 用模拟器实现视频流的音画分离

就是简单的进⾏ ctrl + F5 和 ctrl + F6 的操作, 在操作的时候, 需要设置当前模拟器的焦点, 也就是我们需要把当前模拟器置顶操作, 操作的句柄就是在第⼀步的信息中。这样, 我们就获取到当前模拟器的⾳频⽂件了, 最后⽂件输出为 wav ⽂件, 通过这个⽂件, 就可以对⾳频⽂件进⾏⾳频质量检测。⽐⽅说, 我们开启了5个模拟器, 上⾯⼀些图, 都是开5个模拟器获取到的信息, 5个模拟器在同时⼯作的时候, 深坑就来了,模拟器内录: 伪装系统 APK 在模拟器中录制, 应⽤崩溃, 模拟器不⽀持。

2023-02-12 11:08:39 67

原创 基于NSQ搭建高可用分布式消息队列

基于NSQ搭建高可用分布式消息队列

2023-02-12 11:05:31 114

原创 TorchServe搭建codeBERT分类模型服务

我们知道传统的BERT模型是面向自然语言的,而codeBERT是面向自然语言和编程语言的模型,codeBERT可以处理Python,Java,JavaScript等,能够捕捉自然语言和编程语言的语义关系,可以用来做自然语言代码搜索,代码文档生成,代码bug检查以及代码克隆检测等任务。本次训练基于codeBERT的分类模型,任务是给定两个函数片段,判断这两个函数片段是否相似,TorchServe主要用于PyTorch模型的部署,现将使用TorchServe搭建克隆代码检测服务过程总结如下。

2023-02-12 11:03:39 182

原创 Pandas数据分析及可视化应用实践

上面是将两个子数据集合并,也可以多个子数据集合并,将data_movies,data_ratings与data_users一起合并成data1,可以使用两层merge函数合并数据集,也可以使用merge函数将data与data_users合并。首先定义x,y轴数值,然后绘制图形,设置图形属性,包括颜色,线条,坐标轴范围,线条标记,设置图形标题等,最后使用plt.show( )绘制图形。上面展示的都是子数据的原始状态,但是在数据分析过程中,原始数据可能不满足数据分析的要求,这里做一些简单的处理。

2023-02-12 11:01:50 163

原创 code2vec 代码的连续分布式矢量表示

code2vec 代码的连续分布式矢量表示

2023-02-09 14:36:03 57

原创 一种基于目标检测实现黑花屏分类任务的方案

一种基于目标检测实现黑花屏分类任务的方案

2023-02-09 14:33:00 201 1

原创 UI遍历中页面定义和动作事件筛选方法

UI遍历中页面定义和动作事件筛选方法

2023-02-09 14:30:35 77

原创 GraphQl:让你的接口所得即所要

GraphQl:让你的接口所得即所要

2023-02-09 14:25:17 129

原创 分布式自增ID算法Snowflake简介

过去的项目开发中,我们常常选用的数据库是mysql,mysql以其体积小、速度快等优势,备受中小型项目的青睐。但是数据迁移后我们遇到一个问题,之前mysql数据库中,我们采用的是自增id主键,可选用的tidb又对自增主键不是很友好,所以我们选用了另一种主键生成方式:Snowflake算法。SnowFlake算法是Twitter设计的一个可以在分布式系统中生成唯一的ID的算法,它可以满足每秒上万条消息ID分配的请求,这些消息ID是唯一的且有大致的递增顺序。所有位数加起来共64位,恰好是一个Long型。

2023-02-09 14:21:37 100

原创 kafka 从入门到了解

kafka 从入门到了解

2023-02-09 14:19:29 49

原创 如何提高站内SEO

如何提高站内SEO

2023-02-09 14:14:27 39

原创 大数据第二篇-计算引擎

大数据第二篇-计算引擎

2023-02-07 15:35:32 375

原创 php后台接口异步操作的实践

php后台接口异步操作的实践

2023-02-07 15:34:04 197

原创 数据仓库小课堂

这个其实是相对于数据库而言的,举个栗子,有个用户购买了一本书,就数据库而言关心的主要是这一购买事务的发生并存储相关信息,而对于数据仓库而言,关心的是这个用户的购买行为,需要用到这一用户以往的购买事务信息,以及购买这本书的所有用户相关信息。是因为在数据量越来越大的当下,数据库这种面向事务的数据存储集合已经不能满足大量数据的商业分析需要,所以我们需要一个面向主题的、集成的、相对稳定的、能够反映历史变化的数据存储集合,这就是数据仓库。其二,数据仓库也是定期接收了最新数据的,能够反映最新的数据变化。

2023-02-07 15:32:22 43

原创 DNS和BIND总结

Bind(Berkeley Internet Name Domain Service),它是一款实现DNS服务器的开放源码软件,够提供双向解析,转发,子域授权,view等功能,是世界上使用最为广泛的DNS服务器软件,目前Internet上半数以上的DNS服务器有都是用Bind来架设的。根域就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.co后有一点),一般我们在浏览器里输入时会省略后面的点,而这也已经成为了习惯。本文转载自 360质量效能。

2023-02-07 15:28:58 405

接口测试价值与体系,让你更好地了解接口自动化测试

接口测试价值与体系,让你更好地了解接口自动化测试

2022-09-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除