跳转至

Blog

使用uiautomator的python封装进行android的UI测试

最近项目中有个需求要在至少100台手机上对应用进行兼容性测试,首先想到的就是自动化来操作,不想一台台的操作相同的重复操作

基本的需求是这样的,安装被测试的应用,启动并退出,然后安装测试样本,检测是否有相应的弹窗拦截

考虑到市面上的各种测试框架与自已熟悉的编程语言,最后选择了google自家的uiautomator来搞,借助于前人对其进行了python封装,所以一开始还是挺顺利的,但是整个过程中还是有很多需要注意的地方

使用wxPython建立一个计算文件md5的GUI工具

最近在看wxPython,一开始觉得它的布局好乱,半天整不明白,这里通过写一个小工具来记录一下wxPython的一些基本使用

小工具最终是下面这个样子,将文件拖到上面会自动计算其md5与size

1

笨方法实现webpy的表单校验功能

最近在写一个小的demo,简单的用户注册与登录,检查在注册的时候要先检测用户名是否已经存在了,还要检查一下密码长度要不得小于3个字符

检查用户是否存在我是写在了一个单独的model.py里

1
2
3
4
5
6
def check(uname):
info = db.select('pytest',where="username=$uname",vars=locals())
if len(info)>0:
return False
else:
return True

那天遇到一个杀马特

上小学的时候对于别人如果能有零花钱就感觉很羡慕
因为他们可以买到自已喜欢的吃的
但是我不会去奢求渴望父母也给我
到了初中,我会觉得那些染着黄毛,成天不上学开着大摩托的人比较牛气
因为他们可以不用上学,不用写作业,想打认谁就打谁,可以为别人拔份儿
可以我也不羡慕他们,我也不会去搞个彩毛儿,穿个喇叭裤
到了高中,我觉得那些长的帅气,会打篮球,会弹吉他,会讨女孩子开心的人很好
于是我也会在学习之于搞些自已喜欢的东西
到了大学,那种八面玲珑,左右逢源的人很好

成就感,一种很久违了的感觉

以前看到的文字,看到之时已泪流满面

我的孩子,我希望你好好学习,不是因为我要你跟别人比,而是因为我希望你将来会拥有选择的权利,选择有意义你又喜爱的工作,而不是被迫谋生。 当你的工作在你心中有意义,你就有成就感,成就感会给你带去快乐。无论工作贵贱,只要你是快乐的,妈妈就支持你,因为腰缠万贯也换不得一个真心的幸福。

每天早起晚归的做着一份看不清未来但又不得不去做的工作,因为要谋生,本来应该朝气蓬勃的年纪却变得暮气沉沉,早起挤地铁,挤电梯,下班还要和中介斗智斗勇, 我现在之所以没法选择我想要过的生活也是因为早年没有认真的学习,成就感,一种很久违了的感觉。

Android stadio上使用robotium初体验

在Android Stadio(as)上创建一个app的时候默认会自动创建相应的test类,可以直接在里面写单元测试用例

image

一、在项目(module)中导入robotium的jar包,右键app->new->directory,输入libs

然后将robotium-solo-5.3.1.jar复制进去,然后右键robotium-solo-5.3.1.jar选择add as library,之后就可以写测试用例了

如果还有问题,看一下项目的build gradle

1
2
3
4
5
dependencies {   
 compile fileTree(include: ['*.jar'], dir: 'libs')    
 compile 'com.android.support:appcompat-v7:21.0.3'    
 compile files('libs/robotium-solo-5.3.1.jar')    
}

sql注入初步

自已用php+mysql写了一个登录页面。其中包含多个sql注入漏洞,在mysql中创建一个表,其中有username password email一个列,添加三个数据

+-------------+-------------+-----------------+ | username | password | email | +-------------+-------------+-----------------+ | admin | admin | admin@admin.com | | yangyanxing | yangyanxing | yyx@yyx.com | +-------------+-------------+-----------------+

在phpmyadmin中使用一条sql命令

SELECT * FROM admin WHERE 1

where 1 是一个永真,这样它会把admin表中的所有数据返回

写一个testsql.php文件来尝试使用sql注入的方式登录这个系统

Android中的UI线程阻塞

当一个应用程序启动之后,android系统会为这个应用程序创建一个主线程,这个线程非常重要,它负责渲染视图,分发事件到响应监听器并执行,对界面进行轮询的监听,一般叫做“UI主线程”

Android系统不会给应用程序的多个元素组件建立多个线程来执行,一个视图(activity)中的多个view组件运行在同一个UI线程当中,因此,多个view组件的监听器的执行可能会相互影响。

如有以下两个button,其中一个在会在主view中进行移动动画,另外一个button在点击以后将线程sleep 5秒

Android开发初步

绑定单击事件有两种方法,一种是通过绑定android:onClick属性,一种是绑定一个setOnClickListener回调函数

通过绑定onClick属性

在activity_main.xml对应的组件上设置android:onClick="test" 属性,然后再Java文件里定义一个test方法来实现,这个test方法是MainActivity类的一个方法

1
2
3
public void test(View view){
        Toast.makeText(MainActivity.this, "你还真敢点啊!", Toast.LENGTH_LONG).show();
    }

这里的view就是要使用的控件,如果是绑定的是个button,那么view就是这个button