<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[saint_228的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/saint_228</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; saint_228]]></copyright><item><title><![CDATA[解析BeautifulReport的截图装饰器]]></title><link>https://blog.youkuaiyun.com/saint_228/article/details/104019211</link><guid>https://blog.youkuaiyun.com/saint_228/article/details/104019211</guid><author>saint_228</author><pubDate>Fri, 17 Jan 2020 15:46:37 +0800</pubDate><description><![CDATA[解析BeautifulReport的截图装饰器
之前写的自动化测试框架调用的是BeatuifulReport（https://github.com/TesterlifeRaymond/BeautifulReport）来做的报告表现（以下简称BR）。群里有小伙伴使用BR时发现其是使用装饰器进行的截图传递，不知道怎么用。我试着来分析一下：
git的Readme里有如下的说明：

可以看到，将图片拼接到...]]></description><category></category></item><item><title><![CDATA[自己写一套框架的历程 （二）]]></title><link>https://blog.youkuaiyun.com/saint_228/article/details/103308431</link><guid>https://blog.youkuaiyun.com/saint_228/article/details/103308431</guid><author>saint_228</author><pubDate>Fri, 29 Nov 2019 16:17:06 +0800</pubDate><description><![CDATA[自己写一套框架的历程 （二）
上期链接
要实现一个多设备的框架。我首先考虑的是技术实现方案。
当时作为一个对python完全零经验的QA，我对python的了解完全限于廖雪峰的教程：廖雪峰的官方网站
我觉得这一套的教程很不错，现在我身边有python的初学者，我都会推荐他们从这里开始学习。
在廖雪峰的教程里，我了解到要并发脚本，实现方案主要是多线程和多进程。
了解到进程的开销很大，我一开始选择了线...]]></description><category></category></item><item><title><![CDATA[自己写一套框架的历程  （一）]]></title><link>https://blog.youkuaiyun.com/saint_228/article/details/103307739</link><guid>https://blog.youkuaiyun.com/saint_228/article/details/103307739</guid><author>saint_228</author><pubDate>Fri, 29 Nov 2019 12:09:56 +0800</pubDate><description><![CDATA[一年前的这时候，我还是一个纯黑盒的点点点测试，稍微懂一点java和sql。平日里的工作主要还是以编写执行测试用例，提交测试报告为主。
	公司当时新来了一位CTO，给我个任务，就是了解一下airtest库(https://github.com/AirtestProject/Airtest)，看看能否运用到实际工作中。CTO了解到airtest是因为airtest在18年3月份的谷歌开发者大会上，...]]></description><category></category></item><item><title><![CDATA[将ADB的截图替换为MiniCap的截图]]></title><link>https://blog.youkuaiyun.com/saint_228/article/details/92142914</link><guid>https://blog.youkuaiyun.com/saint_228/article/details/92142914</guid><author>saint_228</author><pubDate>Sat, 15 Jun 2019 18:31:01 +0800</pubDate><description><![CDATA[最近在做性能这块的测试。一开始使用的截图方案是用adb自带的命令，格式类似：
adb	shell screencap -p /sdcard/screencap.png

这个方式操作简单，但缺陷也有，一个是截图很大，一张图片好几M，还要手动写压缩算法缩减尺寸；另一个就是慢，完成一次截图花费1、2秒是很正常的。
缓慢的adb截图拖慢了整个测试节奏。经常导致6、7秒钟才能截取到一次数据。

之前用过S...]]></description><category></category></item><item><title><![CDATA[如何快速从adb shell dump里抓取数据]]></title><link>https://blog.youkuaiyun.com/saint_228/article/details/91346486</link><guid>https://blog.youkuaiyun.com/saint_228/article/details/91346486</guid><author>saint_228</author><pubDate>Sat, 08 Jun 2019 18:01:13 +0800</pubDate><description><![CDATA[如何快速从adb shell dump里抓取数据
最近在研究比较通用的adb性能测试，自己参考网上的许许多多代码，写了各种抓CPU\内存\FPS等数据的方法。
方法写好以后，放到真机上跑了一下，发现功能是实现了，但代码的性能很有问题：
以下面这段代码为例：
    def get_totalmemory(self):
        command = adb + " -s {} shell du...]]></description><category></category></item><item><title><![CDATA[在BeautiflReport中实现手动截图]]></title><link>https://blog.youkuaiyun.com/saint_228/article/details/90045774</link><guid>https://blog.youkuaiyun.com/saint_228/article/details/90045774</guid><author>saint_228</author><pubDate>Thu, 09 May 2019 19:05:32 +0800</pubDate><description><![CDATA[BeautifulReport(以下简称BR)是一个出色的基于unittest的Html报告生成库。
BR默认的截图方式是通过语法糖，在assert抛异常时自动截图。
但有时候我们需要手动截图，甚至在用例顺利通过时截图，之前的装饰器就不太好用了。
所以要解决这个问题，可以手动写一个GetScreen方法，镶嵌到Html里。
具体实现如下：
def GetScreen(startTime,devic...]]></description><category></category></item><item><title><![CDATA[如何手动开启STFServer.apk]]></title><link>https://blog.youkuaiyun.com/saint_228/article/details/89708363</link><guid>https://blog.youkuaiyun.com/saint_228/article/details/89708363</guid><author>saint_228</author><pubDate>Tue, 30 Apr 2019 14:23:37 +0800</pubDate><description><![CDATA[使用STF连接手机，经常会碰到手机连不上的问题。
最近公司新买了一台三星手机。
连接STF时频繁出现“准备中”再“断开连接”的情况。
手动安装STFserver.apk也无法解决问题。
检查STF的log发现报错如下：



2019-04-30T04:36:48.847Z FTL/util:lifecycle 9611 [54c5ca91a5] Shutting down due to fata...]]></description><category></category></item><item><title><![CDATA[遍历pocoUI树的效率]]></title><link>https://blog.youkuaiyun.com/saint_228/article/details/89638300</link><guid>https://blog.youkuaiyun.com/saint_228/article/details/89638300</guid><author>saint_228</author><pubDate>Sun, 28 Apr 2019 15:38:43 +0800</pubDate><description><![CDATA[如何提高遍历pocoUI树的效率
工作中经常碰到需要遍历pocoUI树的情况。不同的写法差别很大，写个博客记录一下。
poco的实例，存储了整个项目的UI树，体积可能非常大。
以我手头的项目为例，其完整的UI树，以字典形式存在txt文本里，容量高达272k。

poco树中的各种控件都有其属性，下面就以这个“UICarmeraRoot”对象为例进行各种写法的效率比对。
在对该poco实例进行操作前...]]></description><category></category></item><item><title><![CDATA[简易自动化测试架构搭建]]></title><link>https://blog.youkuaiyun.com/saint_228/article/details/88690103</link><guid>https://blog.youkuaiyun.com/saint_228/article/details/88690103</guid><author>saint_228</author><pubDate>Wed, 20 Mar 2019 18:56:08 +0800</pubDate><description><![CDATA[简易自动化测试架构搭建前言硬件准备软件准备操作系统PythonSTF代码编写一些踩过的坑
前言
前一段时间，用python+夜神实现了基于模拟器的自动化测试。链接见：https://blog.youkuaiyun.com/saint_228/article/details/88351048。最近想把自动化在真机上实现。所以捣鼓了几天，弄了个简易版测试架构，开销不多，效果不错，在此分享给大家。
硬件准备
我们公...]]></description><category></category></item><item><title><![CDATA[如何在STFServer中连接小米手机]]></title><link>https://blog.youkuaiyun.com/saint_228/article/details/88636574</link><guid>https://blog.youkuaiyun.com/saint_228/article/details/88636574</guid><author>saint_228</author><pubDate>Mon, 18 Mar 2019 12:32:46 +0800</pubDate><description><![CDATA[最近做项目，发现公司的其他手机都能正常连接STFServer，唯独小米手机不行。
每次连接时都会在preparing状态停留几十秒钟，

然后断开。

我的STF是用Docker装的，进入docker，用docker logs 命令查看，可以看到如下的log：
INF/device:plugins:touch 4553 [] Connecting to minitouch service
INF/...]]></description><category></category></item><item><title><![CDATA[使用python+poco+夜神模拟器进行自动化测试。]]></title><link>https://blog.youkuaiyun.com/saint_228/article/details/84889017</link><guid>https://blog.youkuaiyun.com/saint_228/article/details/84889017</guid><author>saint_228</author><pubDate>Mon, 10 Dec 2018 12:12:12 +0800</pubDate><description><![CDATA[网易最近出的一款自动化UI测试工具：Airtest [](http://airtest.netease.com/docs/cn/index.html)挺火的，还受到谷歌的推荐。我试着用了一下，感觉优缺点还是蛮明显的。对初学者来说，能用到的也就是图像识别的功能，这块做得比老牌的按键精灵弱很多。不过Airtest集合了poco框架[](https://pocoproject.org/)，对熟悉pyth...]]></description><category></category></item><item><title><![CDATA[基于Swing的十字翻转棋的算法]]></title><link>https://blog.youkuaiyun.com/saint_228/article/details/84564991</link><guid>https://blog.youkuaiyun.com/saint_228/article/details/84564991</guid><author>saint_228</author><pubDate>Tue, 27 Nov 2018 14:11:02 +0800</pubDate><description><![CDATA[弟弟学java，被老师出了一道十字翻转棋的题目，恨不得一个键一个键往frame里塞，写了近千行还搞不定。
帮他修改了一下，用二维数组循环生成按键和监听。同时，根据脚标来进行十字变色的算法也非常简单。
package com;

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
impo...]]></description><category></category></item></channel></rss>