基于python语言的tensorflow的‘端到端’的字符型验证码识别 1   Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的人工智能技术的发展,传统的字符验证已经形同虚设. 所以,大家一方面研究和学习此代码时,另外一方面也要警惕自己的互联网系统的web安全问题. Keywords: 人工智能,Python,字符验证码,CAPTCHA,识别,tensorflow,CNN,深度学习 2   Introduction 全自动区…
基于tensorflow的‘端到端’的字符型验证码识别 1   Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的人工智能技术的发展,传统的字符验证已经形同虚设. 所以,大家一方面研究和学习此代码时,另外一方面也要警惕自己的互联网系统的web安全问题. Keywords: 人工智能,Python,字符验证码,CAPTCHA,识别,tensorflow,CNN,深度学习 2   Introduction 全自动区分计算机和人类的公…
自动化测试基础 一. 软件测试分类 1.1 根据项目流程阶段划分软件测试 1.1.1 单元测试 单元测试(或模块测试)是对程序中的单个子程序或具有独立功能的代码段进行测试的过程. 1.1.2 集成测试 集成测试是在单元测试的基础上,先通过单元模块组装成系统或子系统,再进行测试.重点是检查模块之间的接口是否正确. 1.1.3 系统测试 系统测试是针对整个产品系统进行的测试,验证系统是否满足需求规格的定义,以及软件系统的正确性和性能等是否满足其需求规格的要求. 1.1.4 验收测试 验收测试是部署软…
关于本书的类型: 首先在我看来技术书分为两类,一类是“思想”,一类是“操作手册”. 对于思想类的书,一般作者有很多年经验积累,这类书需要细读与品位.高手读了会深有体会,豁然开朗.新手读了不止所云,甚至会说,都在扯犊子,看了半天也不知道如何下手. 对于操作手册的书,一般会提供大量的实例,告诉你详细的步骤.对于高手来说,这不就是翻译了一下官方文档嘛,好意思拿来骗钱.但对于新手来说,反而认为是好处,跟着上面的步骤操作就掌握了某种技术能力. 显然,本书属于后者,书中提供了大量代码实例,并没有太多思想层面…
发展历程: <selenium_webdriver(python)第一版>   将本博客中的这个系列整理为pdf文档,免费. <selenium_webdriver(python)第二版>    加入的单元测试框架unittest,用其组织和运行测试用例, 5元. <selenium_webdriver(python)第三版>    整合和HTML测试报告的生成,初步形成测试架构的雏形, 8元. <selenium2 python 自动化测试实战>    …
2016年1月,机缘巧合下我出版了<Selenium2自动化测试实战--基于python语言>这本书,当时写书的原因是,大部分讲Selenium的书并不讲编程语言和单元测试框,如果想在项目中使用Selenium,几乎离不开编程语言和单元测试框架,难道你只用Selenium IDE去录制/回放脚本么? 没想到受到许多测试人员的欢迎,我会时常去看网上的书评.大多是感谢的留言,书的销量也印证了这一点,当然,也有批评和建议.在此,表示感谢. 随着,我对Selenium自动化技术的理解,越来越发现<…
selenium支持多种语言如java.c#.Python.PHP等,这里基于python语言,所以这里搭建环境时需做俩步操作: ----1.Python环境的搭建 ----2.selenium的安装 1.安装Python 下载Python安装包---->安装----->验证是否安装成功 1.1下载安装Python安装包 版本为Python2.7.10,官网下载,官网地址为https://www.python.org/.到官网下载2.7.10版本,直接点击安装,安装的过程中勾选Enter fe…
虫师的<Selenium 2自动化测试实战 基于Python语言>是我自动化测试的启蒙书 也是我推荐的自动化测试入门必备书,但是书中有一处明显的错误,会误导很多读者,这处错误就是第8章自动化测试高级应用中,第一节自动发送邮件功能中,8.1.4整合自动发送邮件功能 当我们运行如下代码后,会发现邮件发送成功,但是打开邮件发现邮件中的内容为空 在书中182页我们看到了如下解释. 但是这个解释为错误的,引起无法发送最新报告的内容,其实是因为代码中有一处bug,并非HTMLTestRunner报告文件的…
一.部署说明 1.python语言介绍 python简介 2.实验环境 实验机器:Vmware虚拟机 8核10G 网卡:桥接模式 系统:centos7.5 防火墙:关闭 Selinux:关闭 网段:192.168.10.0/25 WEB01:192.168.10.42 二.部署流程 Centos7.5 + Nginx + python + Django + uwsgi + mysql来部署网站(服务). 1.部署Nginx $ wget http://nginx.org/download/ngi…
前 每逢周末就遇雨期,闲暇之余,捣鼓了下python,心心念想学习,今天就在电脑上装了个2.7,学习了下经典算法,冒泡与选择排序法 第一次写关于python的文章,说的不当之处,多多指正,我积极改正 在之前,曾写过使用java和C语言实现该两种排序法,详情见https://www.cnblogs.com/hong-fithing/p/7615907.html 搭建环境,准备工作就不冗余介绍了,网上搜罗一大堆 目录 冒泡排序法 选择排序法 冒泡排序法 冒泡类似于汽水现象,摇动一下,就有很多泡往上冒…
远程过程调用(RPC) 在第二节里我们学会了如何使用工作队列在多个工人中分布时间消耗性任务. 但如果我们想要运行存在于远程计算机上的方法并等待返回结果该如何去做呢?这就不太一样了,这种模式就是常说的远程过程调用(RPC). 在本节我们会 在本节我们会使用RabbitMQ创建一个RPC系统:一个客户端和一个可扩展(scalable)的RPC服务.由于我们没什么真正的时间消耗型任务去分配,我们就创建一个摆样子的RPC服务,它可以返回Fibonacci数. 客户端接口 为了阐释RPC服务如何使用,我们…
---恢复内容开始--- 1) 一门面向对象的语言 2)拥有丰富的库 3)可移植性 4)免费.开源 5)简单易易学 可做软件开发.人工智能.web开发等等 部署流程: Cnetos7.5+Nginx+python+Django+uwsgi+mysql 实验部署流程 1)安装Nginx 2)安装python 3)安装mysql 4)部署发布平台 5)测试 1.前面已经安装了Nginx 2.mysql_install(中小型公司) ⼀一个关系型数据库,由瑞典的AB公司开发,后来卖给了了oracle公…
大家好,我是正在学习接口测试的菜鸟.近期通过自己的学习,完成了一个关于测试接口的接口自动化demo.下面想跟大家分享一下,主要的思路是根据接口文档确定测试用例,并将测试用例写在excel中.因为只是小作demo,测试用例我没有写的很全,有兴趣的大佬自己补充一下.下面先分享接口文档,以及写在excel中的测试用例,这里需要注意的是,测试用例一定要按照我这种格式写,否则下面封装的doExcel类将会无效.     现在测试文档和测试数据我们都有了,我们要明确我们要做到什么?基于我目前所学,我最想做到…
Topics 在前面教程中我们改进了日志系统,相比较于使用fanout类型交易所只能傻瓜一样地广播,我们用direct获得了选择性接收日志的能力. 虽然使用direct类型交易所改进了我们的系统,但它仍然有所限制——它不能做基于多重条件(multiple criteria)的路由. 在日志系统中我们可能不只是想要基于严重级别来订阅日志.也想要基于产生日志的来源.你可能从unix的系统日志工具(syslog unix tool)知道了这个概念,它就是基于严重级别 (info/warn/crit…)…
路由 在上一节我们构建了一个简单的日志系统.我们能够广播消息给很多接收者. 在本节我们将给它添加一些特性——我们让它只订阅所有消息的子集.例如,我们只把严重错误(critical error)导入到日志文件(存入磁盘空间),但仍然可以打印所有日志消息到控制台. 绑定 前面的例子中我们已经创建了绑定,像下面这样: channel.queue_bind(exchange=exchange_name, queue=queue_name) 1 2 绑定是一个交易所和一个队列之间的关系.这可以解释为:一个…
介绍 RabbitMQ 是一个消息中间人(broker): 它接收并且发送消息. 你可以把它想象成一个邮局: 当你把想要寄出的信放到邮筒里时, 你可以确定邮递员会把信件送到收信人那里. 在这个比喻中, RabbitMQ 就是一个邮筒, 同时也是邮局和邮递员 . 和邮局的主要不同点在于RabbitMQ不处理纸质信件, 而是 接收(accepts), 存储(stores) 和转发(forwards)二进制数据块 —— 消息(messages). 在RabbitMQ中有一些自己的行业术语要了解 . 生…
前    言 本书的原型是我整理一份Django学习文档,从事软件测试工作的这六.七年来,一直有整理学习资料的习惯,这种学习理解再输出的方式对我非常受用,博客和文档是我主要的输出形式,这些输出同时也帮助到许多软件测试人员. 说回到接口测试的话题上来,根据分层自动化测试的思想,上层为UI层,关于UI层的自动化测试我们已经很熟悉了,许多技术和工具都围绕这一层来设计的,我们要想做自动化,首先想到和尝试去做的也是一层的自动化实现:底层为单元测试,对于单元级别的自动化测试来说,虽然大多数测试人员并没有真正…
MySQL — 连接器 连接器的概念 它们往往是一类Python包,或者是一类已经写好的Python库.这些库提供了我们Python去连接数据库服务器的基本功能. ​ 既然它是一个包,那么我们首先学会导入这个包 #! /usr/bin/env python3 # coding: utf-8 ​ from mysql import connector print('导入成功') 执行以上代码 $ python3 test_connector.py 导入成功 表示我们成功导入了相关的包或者模块 连接…
在wiki上看完接口文档根据传入的参数来查看返回的测试结果,测试结果提示缺少参数,找开发小伙伴沟通,原来发现缺少公共参数.找开发拿到公共参数的接口文档,发现里面传入的参数包含时间戳和签名. 时间戳:姑且理解为对当前时间的唯一标识吧 签名:我的理解是对开发的系统一种安全的认证(根据公司的appid,appscret,一些参数)通过算法随机生成的一堆字符串 然后我就问开发的小伙伴们要签名的算法,无奈只有php算法和java算法,由于签名执行一次就失效了,所以很麻烦就想着用python来实现签名算法.…
WebDriver提供了八种元素定位方法,在python 语言中,方法如下:  id定位:find_element_by_id("id值"):id属性是唯一的.  1 driver.find_element_by_id("account").send_keys("admin")#输入账号  2 driver.find_element_by_id("password").send_keys("111111")…
终于可以购买了!! 有需要的同学通过下面链接购买. 购买来链接: https://item.jd.com/11806319423.html 为什么要出这样一本书? 首先,今年我有不少工作是跟接口自动化相关的,工作中的接口自动化颇有成效. 我一直是一个没有测试大格局的人,在各种移动测试技术爆发的这一年,我却默默耕耘着自己的一亩三分地儿(Web接口开发与测试). 不管是web自动化也好,移动自动化也好,大家都只是在关心UI层的自动化....作为分层自动化技术的信徒,市面居然没有一本关于接口自动化的书…
实现效果:执行脚本后启动Firefox浏览器后进入百度主页,输入“Selenium”后,单击搜索按钮,最后关闭浏览器的过程(默认安装了Firefox浏览器),如下图所示: 脚本内容如下: # -*- coding:UTF-8 -*- from selenium import webdriver driver=webdriver.Fire() driver.get("https://baidu.com") driver.find_element_by_id("kw")…
1. 准备 安装模块 # yum groupinstall "Development tools" # yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel # Python 2.7.6: # wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz # tar xf Python…
#1安装Python Mac OS上自带python2.7,在此介绍安装python3.x版本 去官网下载Python for MAC版本 https://www.python.org 安装文件为pkg格式,正常安装即可. #2 安装setuptools https://pypi.python.org/pypi/setuptools 下载zip格式 下载后解压,使用MAC终端 cd setuptools-36.5.0python setup.py install #3 安装pip https:/…
发布/订阅 前面的教程中我们已经创建了一个工作队列.在一个工作队列背后的假设是每个任务恰好会传递给一个工人.在这一部分里我们会做一些完全不同的东西——我们会发送消息给多个消费者.这就是所谓的“发布/订阅”模式. 为了解释这种模式,我们将会构建一个简单的日志系统.它包含两个程序——第一个产生日志消息,第二个接收并把他们打印出来. 在我们的日志系统中,每一个接收程序的正在运行的拷贝都会获知消息,那样我们将能够运行一个接收者把日志指向磁盘:同时我们将能够运行另一个接收者在屏幕上查看日志. 实质上,被发…
工作队列 在第一节我们写了程序来向命名队列发送和接收消息 .在本节我们会创建一个工作队列(Work Queue)用来在多个工人(worker)中分发时间消耗型任务(time-consuming tasks). 工作队列(又叫做: Task Queues)背后的主体思想是 避免立刻去执行耗时任务并且等待它们完成. 相反我们可以安排这样的任务稍后执行. 我们可以把任务封装成一个消息并发送到队列中. 一个在后台运行的工人进程会接收任务并最终执行工作.当你使很多工人(workers)程序运行时,多个任务…
编写此脚本的目的: 本人从事软件测试工作,近两年发现项目成员总会提出一些内容相似的问题,导致开发抱怨.一开始想搜索一下是否有此类工具能支持查重的工作,但并没找到,因此写了这个工具.通过从纸上谈兵到着手实践,还是发现很多大大小小的问题(一定要动手去做喔!),总结起来就是理解清楚参考资料.按需设计.多角度去解决问题. 脚本进行相似度分析的基本过程: 1.获取Bug数据.读取excel表,获取到“BugID”和“Bug内容” 2.获取指定格式的Bug关键字集合.使用“jieba包”,采用“搜索模式”,…
关于封面logo 首先,你会被书封上面logo吸引,这么炫酷?双蛇杖?嗯,这是Requests的新logo. 旧的logo是一只乌龟. 新logo是双蛇杖: 看到新logo我首先想到的是 火爆全网页游 “大天使之剑”,直到前两天一位网友告诉我这是双蛇杖,然后,我百度了一下双蛇杖的神话故事.然后,找到了Requests库开发者的一次提交,有人说喜欢旧logo,然后,得到的答复是:“This represents the peace Requests brings between the serve…
#1 安装JDK java -version #2 下载SDK http://adt.android-studio.org/ 下载adt #3 配置sdk环境变量 打开终端,依次输入命令 vim .bash_profile 在文本中添加然后保存 export ANDROID_HOME=/Applications/eclipse/sdk export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools 其中ANDROID_HOME…
下边是自己在学习过程中总结的一些常用键盘的操作…