分类目录归档:学习

浏览器自动化测试框架Selenium之初体验

登录网页,进行一些自动、批量的操作,可以显著提高工作效率,使用HTTP协议能实现这样的功能,使用按键精灵也能实现这样的功能,但是这两种方法都有自己的缺点:HTTP协议操作比较复杂,如果不精通的话,很容易提交错乱的数据,影响数据的完整性;按键精灵不存在第一种问题,它是通过模拟人工操作的方式对浏览器进行操作,但是必须使用自身所带的浏览器WQM,因此两种方式都有局限性。

最近接触到了一种类似按键精灵的软件,叫Selenium,是一种浏览器自动化测试框架,功能强大,支持多种语言、多种浏览器,而且还跨平台,本着活到老学到老的原则,迫不及待的安装了Selenium,体验了一把。

1 什么是自动化测试
自动化测试,顾名思义就是软件测试的自动化,用程序代替人工进行软件测试,提高工作效率,减少时间和人工成本。自动化测试主要用于需求变动不频繁、项目周期长、自动化测试脚本可重复使用的情况。常见的自动化测试工具有:QTP、Winner、Rational Robot、AutoRunner等等。

2 Selenium简单介绍
Selenium是一种浏览器自动化测试框架,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上;测试系统功能——创建回归测试检验软件功能和用户需求;支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

3 使用Python+Selenium实现百度自动搜索
此次尝试使用Python+Selenium自动打开浏览器,打开百度页面,填入搜索关键词,并点击”百度一下“按钮,实现自动搜索。

3.1 测试环境
操作系统:Ubuntu Kylin 16.04
脚本语言:Python 2.7.12
Selenium版本:Selenium-3.141.0
浏览器:Chromium 76.0.3809.100-0ubuntu0.16.04.1 amd64

3.2 安装过程

安装Python
使用Ubuntu系统的优点是,安装软件只需执行:
sudo apt install <软件名称>
因此,安装Python,只需执行下面的使命令:
sudo apt install python

安装Selenium

Selenium支持多种语言,此次使用Python,直接安装Python语言的Selenium包即可:
pip install selenium

安装Selenium的浏览器驱动Chromedrive

注意针对不同游览器有不同的版本,同样的浏览器也有不同的版本,一定要分清楚。此次使用的浏览器是:Chromium 76.0.3809.100-0ubuntu0.16.04.1 amd64,因此要选择相匹配的Chromedriver版本,下载地址:
http://chromedriver.storage.googleapis.com/index.html
下载之后,将chromedriver移动到下面的目录:
/home/alex/chromedriver
注意存放位置,后面要调用。
添加可执行的权限:
chown 755 /home/alex/chromedriver

编写自动化脚本
# coding=utf-8
from selenium import webdriver
from selenium.webdriver import ActionChains
import os
chromedriver=’/home/alex/chromedriver’
browser = webdriver.Chrome(chromedriver)
browser.get(“http://baidu.com”)
keyword=browser.find_element_by_id(“kw”)
actions=ActionChains(browser)
actions.send_keys_to_element(keyword,”dachengge.com”)
actions.perform()
##关闭浏览器
##browser.close()

PHP项目依赖管理工具Composer之初体验

进行系统开发时,使用框架可以提高效率,很快地把网站搭建起来,以前使用框架的时候,都是简单地把PHP框架内容复制到网站根目录中,操作起来非常简单、有效。但是最近接触PHP框架时,了解到了一种新的安装方式,那就是Composer。

1 什么是Composer?

Composer是一种PHP项目依赖管理工具,能够允许你申明项目所依赖的代码库,并且在项目中自动安装这些代码库。相当于Linux环境下面的APT和RPM,在安装软件时,会自动安装所依赖的包,使得整个安装过程非常简单。记得以前在Linux下使用源码安装软件时,必须提前安装完所依赖的程序,过程非常复杂,因此相信使用Composer来管理PHP项目的依赖,会非常有用,极大地提高工作效率。

2 Composer安装的系统要求

运行 Composer 需要 PHP 5.3.2+ 以上版本,一些敏感的 PHP 设置和编译标志也是必须的,但对于任何不兼容项安装程序都会抛出警告。Composer 是多平台的,可以在 Windows 、 Linux 以及 OSX 平台上运行。

3 安装Composer

继续阅读PHP项目依赖管理工具Composer之初体验

韩非子·和氏第十三读书笔记

和氏璧是一块非常美的玉,《完璧归赵》中的璧就是指和氏璧,相传秦国为了这块美玉,愿意拿十五座城池跟赵国换,结果秦王看到和氏璧之后想爽约,没有拿城池来换的意思 ,于是蔺相如跟秦王斗智斗勇,最终不辱使命,成功取回和氏璧,归还赵国,这就是完璧归赵的故事。

《韩非子·和氏第十三》也是一篇有关和氏璧的文章,文中详细描述了和氏璧的发现过程,表现出了卞和的执着与悲哀,君主的昏聩,和氏璧的价值连城。韩非子以和氏的遭遇比喻自己的政治主张不能为他的国君所采纳,反而受到排斥,但是法家人士都是有献身精神的,即使遭遇像卞和一样,还是愿意把跟和氏璧一样价值连城的法术理论献给君主。下面就是和氏璧的故事:

楚人卞和在荆山中得到一块玉璞,捧着进献给楚厉王。厉王让玉匠鉴定,玉匠说:“是石头。”厉王认为卞和是骗子,就砍掉了他的左脚。厉王死,武王继位,卞和又捧着那块玉璞去献给武王。武王让玉匠鉴定,玉匠又说:“是石头。”武王也认为卞和是骗子,就砍掉了他的右脚。武王死,文王登基,卞和就抱着那块玉璞在荆山下哭,哭了三天三夜,眼泪干了,跟着流出的是血。文王听说后,派人去了解他哭的原因,问道:“天下受断足刑的人多了,你为什么哭得这么悲伤?”卞和说:“我不是悲伤脚被砍掉,而是悲伤把宝玉称作石头,把忠贞的人称作骗子,这才是我悲伤的原因。”文王就让玉匠加工这块玉璞并得到了宝玉,于是命名为“和氏之壁”。

和氏悲伤的是君主把玉石当石头,把忠贞的人称作骗子。同样的道理,对于君主来说,法家理论能够实现富国强兵,加强君主权力,但是会得罪当涂之士,因此法家人士的处境比卞和还危险。卞和献和氏璧,仅仅是因为君主认为被欺骗了,实际上并没有任何损害,结果遭遇酷刑,可见会得罪人的法家人士处境有多危险。韩非子借和氏璧故事,想表达的是法家人士并不怕危险,怕的是进献跟和氏璧一样珍贵的富国强兵理论,到头来被人认为是骗子,得不到认可。

在Linux环境下搭建LAMP的尝试

LAMP是一组用于运行动态网站或者服务器的自由软件的首字母组合,通常使用PHP建立网站或服务器时,会使用这样的组合,当然这里面的L指的是Linux系统,如果使用Windows系统安装的话,对应的还有WAMP,今天就来试试LAMP环境的配置。

1 什么是LAMP环境
  • Linux,操作系统
  • Apache,网页服务器
  • MariaDB或MySQL,数据库管理系统(或者数据库服务器)
  • PHP、Perl或Python,脚本语言
2 具体搭建过程
2.1 Linux系统的安装

Linux采用Ubuntu系统,这个可以自行下载安装,最好与Win安装成双系统,因为Ubuntu除了工作使用外,真的不适合日常娱乐。此次下载Ubuntu系统时,选择了麒麟版的系统,比较适合中国用户。

2.2 Apache服务器的安装

Apache是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一,其它常见的服务器还有Tomcat等等。
安装Apache非常简单,不像Windows打开 网站下载再安装 ,在Ubuntu下面直接运行下面的命令即可:sudo apt install apache2
继续阅读在Linux环境下搭建LAMP的尝试

轻量级排版写作工具Markdown之初体验

平时有写博客的习惯,每周或多或少写一篇,记录一些工作、生活中的事情,顺便提高写作和表达的能力。一直以来直接使用wordpress写文章,编辑器比较简陋也没有在意过,写完后再点选编辑器上面的按钮来调整内容,整个过程有些麻烦,但是基本习惯了。

今天一个偶然的机会,了解到了一个非常好用的写作工具Markdown,它的特点是轻量级,非常小,写作时能通过输入特殊的符号进行排版,完全不用鼠标点击,就能够实现边写作、边排版,一步到位,而且最大的优点就是简单易学,本篇文章就是第一次使用Markdown编写的,边看教程边写,相信用不了两次就学会了。

一说到排版,很多人就疑惑了,这项工作不是Word或者Wps干的吗?确实,这两种工具非常专业,功能非常强大,但是用于写文章这些简单的工作,真有一种大炮打蚊子、杀鸡用牛刀的感觉。记事本足以胜任,再加上简单的排版功能,就完美了,Markdown就是这样的一种工具,界面跟记事本一样简洁,当涉及到排版时,直接使用特殊符号即可,完全摆脱了鼠标的限制,真正实现专注于写作内容。

Markdown的简单使用方法

标题 字符#开头的内容系统会转换成标题,注意#号和内容之间须有空格,一个#开头是一级标题,二个#开头是二级标题,以此类推,六个#开头就是六级标题,前面标题用的是六级标题,字号正好,不显大。

引用 所谓引用,就是说话或写作中引用现成的话,如诗句、格言、成语等,以表达自己思想感情的修辞方法,在Markdown中使用大于号>表示引用,如果一段话是引用的,只需要在内容前面输入>号即可,注意符号和内容之间有无空格都行,例如:

毛主席说过:“在战略上要藐视敌人,在战术上要重视敌人!”

特殊字体 写文章时,经常用到特殊字体,比如粗体、斜体、下划线、删除线等表示特定含义,针对这些内容,也有特殊符号来表示,注意符号和内容之间不能有空格:
用一个星号括住表示斜体:粗体
用二个星号括住表示加粗:粗体
用三个星号括住表示加粗的斜体:粗体
用二个~括住表示删除:删除

列表 列表也是经常用到的格式,分为无序列表和有序列表两种,对于无序列表来说,只用在内容前面加*号或者-号即可,系统会自动变成无序列表;对于有序列表来说,直接输入1. 2. 这样的内容就行了,系统也会自动识别,注意符号和内容之间必须有空格,下面是样式:
无序列表样式:

  • 第一项;
  • 第二项;

有序列表样式:

  1. 第一项;
  2. 第二项;

分割线 分割分也就是常见的水平线,用来分割内容,在wordpress里面使用分割线时,直接点选即可,而在Markdown中也比较简单,直接输入三个星号,例如:


至于表格、图片、超链接等等也都有相应的操作,现在发现Markdown的方便了吧?由于篇幅所限,只简单地介绍到这里,更复杂的功能,有待于大家去发现,毛主席说过活到老学到老,希望大家能体会到学习的乐趣。

好工具分享:文件同步备份软件synctoy

常言道:硬盘有价,数据无价,硬盘坏了,可以再买,数据一旦丢了,就再也找不回来了。试想一下,加班加点做好了几天的PPT找不到了,辛辛苦苦写的文件删除了,是多么让人崩溃的一件事,且不说再做一遍多麻烦,关键是把工作耽误了,给老板一种不靠谱的感觉。

如何做好文件的备份,挑选一个好的工具很重要,很多人可能觉得直接复制到U盘、移动硬盘就行了,用不着备份工具,但是有很多先进的备份工具,考虑得非常细致,功能比较完善,能够显著提高我们的工作效率,这样就没必要不使用。就好比我们工作和生活中碰到好多先进的知识、理论和方法一样,都可以拿来为使用。牛顿说过他之所以成功,是因为站在了巨人的肩膀上,那么要做好工作了,站在这些先进工具的肩膀上。

今天要分享的是文件备份同步的软件SYNCTOY,是微软推出的一款软件,不到4M,完全免费。能够在不同存储设备之间同步文件和文件夹,是一个非常好的同步、备份工具。它可以在本地电脑之间、不同电脑之间同步备份文件,不过本人只用过电脑向移动硬盘之间备份,所以只说这种功能。 继续阅读好工具分享:文件同步备份软件synctoy

比特币及一些概念

去年勒索病毒大爆发,瞬间很多人都知道了比特币,之后比特币的价格经历了过山车一样的波动。随着比特币的流行,作为比特币底层技术的区块链技术应用也火热起来,因此有必要学习学习比特币币方面的概念。
1 什么是比特币
比特币(BitCoin)的概念最初由中本聪在2009年提出,根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。类似于QQ币,比特币也是一种虚拟币,只不过它是去中心化的、匿名的、不可篡改的,就是说比特币不是某个机构发行出来的,而是所有的比特币用户通过求解复杂的密码学问题得到的;比特币的交易对象是匿名的,用户只知道向某个地址转了多少比特币,这个地址对应的是谁不知道;另外比特币交易不可逆,一旦交易了就不可能再撤销。
2 区块链
区块链是比特币的底层技术,由于比特币是中心化的,它没有央行或者第三方可信机构来清算。比特币采用的是分布式记帐,所有的用户都记录从产生比特币以来所有的交易信息,因此能过交易记录很容易计算出每个用户的交易情况和余额。为了保证这些交易记录不被篡改,将这些交易记录存在一个一个的区块中,每个块都存放前一个块的信息,而且很容易验证,这样如果有人想修改某交易记录,那么他得修改这个块及以后的所有的区块,这个几乎是不可能 的。
4 挖矿
比特币不是发行出来的,而是用户通过复杂的计算获得的,这个过程就是挖矿。前面的区块链讲到每一个区块都保存上一个区块和一个随机数的HASH值,这个HASH值的前N位是0,这个随机数的求解过程,不断地进行HASH运算,需要耗费大量的电力和电脑资源进行运算,一旦去算出结果,得会获得一定量的比特币,这个过程就是挖矿。 继续阅读比特币及一些概念

韩非子·八奸第九读书笔记

《八奸》讲的是大臣们得以实现奸谋的八种途径,以及应对的方式,所有这八种手段,是臣子实现奸谋的途径,是君主受到蒙蔽挟制以至失掉权势的原因,是不可不明察的,文章分析得非常透彻,可以说不光对君主,对任何一位管理者也有一定的现实意义。韩非子的理论只为君主一人谋划,为了加强中央集权,不得不严加防范权臣和近侍,防止他们违法乱纪,因此道理非常正确,但是真正让君主摒弃私情 ,还是很有难度的。

【方式一:同床】
【含义】尊贵夫人,谄媚便巧,姿色美丽,正是君主所迷恋的,趁着君主在安居快乐、酒醉饭饱的机会,来央求她们想要得到的东西,这是让君主一定听从的手段。做臣子的通过内线用金玉财宝贿赂她们,叫她们蛊惑君主,这就叫“同床”。
【对策】明君对于宫内的夫人美女,欣赏她们的美色而不理睬她们的禀告,不准因私请求。

【方式二:在旁】
【含义】倡优侏儒,亲信侍从。这些人,君主没下令就应承,没支使就应承,事先领会君主的意图,察颜观色来预先摸到君主的心意。这些人都是一致行动、一个腔调,统一口径和行动来改变君主心意的人。做臣子的通过内线用金玉珍宝贿赂他们,在外帮他们干不法之事,叫他们影响君主,这就叫“在旁”。
【对策】对于左右近侍,使用他们,一定要严察他们的言论,不准夸大其辞。

【方式三:父兄】
【含义】即,叔伯、兄弟,是君主亲近爱护的人;大臣廷吏,是君主咨议谋划的人。这些人都竭尽全力参与议政,是君主必然听取的。做臣子的用音乐倩女来侍奉君主的叔伯、兄弟,又用花言巧语来笼络大臣廷吏,处在关键时刻进言,事成之后就进爵加禄,这样来耸恿他们,使他们干扰君主,这就叫“父兄”
【对策】对于父兄和大臣,听取他们的意见,但一定要使他们用受罚担保后果,不许妄荐。

【方式四:养殃】
【含义】即,君主喜欢修饰宫室台池,喜欢打扮倩女狗马来赏心悦目,这是君主的灾殃。做臣子的用尽民力来修饰宫室台池,加重赋敛来打扮倩女狗马,这样来娱乐君主而扰乱他的心事,顺从他的欲望,而在其中夹杂私利,这就叫“养殃”。
【对策】对于观赏玩乐的东西,一定要在法令上有依据,不准群臣擅自进献或裁减,不让群臣猜度到君主的心意。
继续阅读韩非子·八奸第九读书笔记

韩非子·扬权第八读书笔记

《扬权》主要讲的是高扬君权,文章着重讨论了君权至上的道理,进一步阐述了君主“执一以静”、“形名参同”、“自执度量”的御臣之术。韩非依据老子“道不同于万物”的思想提出了“君不同于群臣”的观念,指出君臣之间有着天然的等级差别,“明君贵独道之容”,强调君主建立独一无二的绝对权威是治国治民的政治原则。
1 事在四方,要在中央;圣人执要,四方来效
韩非继承了老子的无为而治思想,指出在治理时,不能显露君主的喜好,而是保持本色,无为而治。作为君主应该牢牢抓住权柄,即杀伐和庆赏,让本四面八方的能人来效力,对于刑名相符的人进行奖励,对于言行不一的人进行处罚,这就是自然规律。
2 夫物者有所宜,材者有所施
每个人都有每个人的特长,鸡会打鸣、狗会看门、猫会抓老鼠,同样的道理,每个人都有所擅长的方面,因此要根据大臣的才能安排岗位。对于君主来说应该知人善任,将不同的人放在合适的岗位上,而自己则保持清静无为,暗中观察,不显山、不露水,才能让大臣们发挥自己的长处,建功立业。
3 凡听之道,以其所出,反以为之入
韩非子讲的考察方法,就是刑名相符、言行一致,比较务实,不能光听别人说好听的,最重要的还是能不能实现。做为君主应该无为而治,让大臣们充分表达自己的意见和看法,并安排他们去做,依据言论和实际的成果来确定奖励和惩罚,这样真假马上就能分辨出来,大臣们也不敢不真诚。
继续阅读韩非子·扬权第八读书笔记

百度区块链游戏度宇宙之初体验

莱茨狗是百度今年年初推出的区块链游戏,目前游戏还是比较简单,只有狗的交易和繁殖功能,但是仅仅半年的时间,狗的价值(微积分)已经涨了几十倍,速度比不上去年虚拟币那样,也差不多了,毕竟才推出半年的时间,可以说百度的区块链项目还是值得关注的,希望百度后面不断地推出新功能,这样才能吸引更多的玩家。
这次想说的是百度6月中旬推出的一个新的区块域游戏“度宇宙”,根据系统介绍,度宇宙为用户打造一个由元素引力星球所构建的数字宇宙,用户可以通过多种探索行为获取度宇宙“元素”,并创造和扩建属于自己的星球,在用户星球质量逐渐增加的过程中,诸多新功能将逐步开启。也就是说在度宇宙中,有四个组成部分:

  • 元素:度宇宙空间中漂浮着各种神奇的元素,需要通过引力将它们不断聚集。
  • 星球:来到度宇宙的居民会有创世力量为其凝聚一颗独一无二星球,它是居民本身的外在实体。
  • 引力:它是度宇宙居民脑力的外化形式,居民的引力越大,就能获得越多的元素。
  • 探索:度宇宙中有各种神秘有趣的星球,在探索中可不断提升自身引力。

继续阅读百度区块链游戏度宇宙之初体验