自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 14.appium 测试实例

1. appium 应用测试介绍原生应用、移动 Web 应用和混合应用的测试实例。(1)原声应用测试原生应用是指由 Android 框架开发的应用,例如 Android 系统自带的通讯录为例,添加联系人。

2021-08-06 19:59:41 909

原创 13.appium基础

accessibility_id:find_element_by_accessibility_id() Android的content-desc属性对应AccessibilityId定位方式。iOS的label和name属性都对应AccessibilityId定位方式,如果有则推荐使用。

2021-08-03 11:12:33 648

原创 12.appium的介绍与安装

appium 是一款移动自动化测试工具,目前在移动 UI 自动化领域占有重要地位,不仅支持 Android 和 iOS 两大平台,还支持多种编程,因而得到广泛的应用。1.appium介绍(1)移动应用类型移动应用类型主要分为以下几类:Native App:原生应用。Native App(原生应用)是为特定移动设备或平台开发的应用程序(如 Android、iOS 或 Windows)。 例如,iPhone 应用程序是用 Swift 写的,Android 应用程序是用 Java 写的。原生应用的可

2021-08-01 10:01:01 495

原创 11.Jenkins持续集成

最近几年,持续集成(Continuous Integration,CI)在项目开发中得到了广泛的推广和应用。什么是持续集成软件集成就是用一种较好的方式,把多种软件的功能集成到一个软件里,或者把软件的各部分组合在一起。当项目开发规模较小且对外部系统的依赖很小时,name软件集成不是问题。随着软件项目复杂度的增加,对集成和确保软件组件能够在一起工作提出了更高的要求:早集成、常集成。这样才能帮助项目开发者更早地发现项目风险和质量问题。持续集成的定义持续集成是一种软件开发实践,即团队开发成员经常集成他们的工

2021-07-28 17:01:36 314

原创 Windows家庭版-本地组策略添加用户或组

(PS:确保自己的电脑是本地账户登录,不然添加了用户组之后,在 Jenkins 的安装步骤中添加用户名和密码也不会认证成功。)因本人电脑是 Windows10 家庭版,所以控制面板-管理工具下没有 “本地安全策略”。下面添加 “本地安全策略”:新建文件,添加以下代码,并将文件保存为 .cmd 格式文件,例如 a.cmd 。@echo offpushd "%~dp0"dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy

2021-07-26 21:40:45 5937 2

原创 10.Selenium Grid

selenium 家族的 Selenium Grid—— 主要用于自动化测试的分布式执行。1. Selenium Grid 介绍Selenium Grid 分为两个版本:Grid1 和 Grid2,Grid2 的出现要晚于 Selenium 2 的发布。Grid 的两个版本的原理和基本工作方式完全相同,但是 Grid2 同时支持 Selenium 1 和 Selenium 2,并且在一些小的功能和易用性上进行了优化,例如指定了测试平台的方式等。Grid2 不再提供单独的 jar 包,其功能已经集成到

2021-07-25 16:58:20 463

原创 9.pytest 单元测试框架

pytest 是一个第三方单元测试框架,更加简单、灵活,而且提供了更加丰富的扩展,弥补了 unittest 在做 Web 自动化测试时的一些不足。1. pytest 简单例子pytest 支持 pip 安装,pip install pytest创建 test_sample.py 文件,代码如下:def inc(x): return x + 1def test_answer(): assert inc(3) == 5命令行窗口,进入到 test_sample.py 文件所在目录

2021-07-23 21:15:26 566 1

原创 8.Page Object

Page Object 是 UI 自动化测试项目开发实践的最佳设计模式之一,它的主要特点体现在对界面交互细节的封装上,使测试用例更专注于业务的操作,从而提高测试用例的可维护性。1. 认识 Page Object当为 Web 页面编写测试时,需要操作该 Web 页面上的元素。直接操作这些元素,这样代码十分脆弱,因为 UI 会经常变动。page 对象的一个基本经验法则是:凡是人能做的事,page 对象通过软件客户端都能做到。它提供一个易于编程的接口,并隐藏窗口中底层的部件。page 对象把在 GUI 控件

2021-07-20 15:17:39 289 1

原创 7.unittest扩展

1. HTML测试报告HTMLTestRunner 是 unittest 的一个扩展,它可以生成易于使用的 HTML 测试报告。可在Python3下运行的,地址:GitHub 地址:https://github.com/defnngj/HTMLTestRunner。(1)下载与安装打开上面的 GitHub 地址,克隆或下载整个项目。然后把 HTMLTestRunner.py 单独放到 Python 的安装目录下面,如 C:\Python37\Lib\。命令行窗口输入python,导入 HTMLTest

2021-07-20 09:10:34 263 1

原创 6.unittest单元测试框架

单元测试对技术要求很高,但用单元测试框架做单元测试却十分简单,而且单元测试框架不仅可以用来做单元测试,它还适用于不同类型的“自动化”测试。它提供了以下功能:提供测试用例组织和执行定义一条测试用例,灵活地控制测试用例的执行等提供丰富的断言方法进行功能测试时,测试用例需要有预期结果。当测试用例的执行结果与预期结果不一致时,判定测试用例失败。在自动化测试中,通过“断言”来判定测试用例执行成功与否。一般单元测试框架会提供丰富的断言方法。例如,判断相等/不相等、包含/不包含、True/False 等。提

2021-07-17 10:49:17 841 6

原创 5.自动化测试框架

1.基本概念(1)库库的英文单词是 Library,库是由代码集合成的一个产品,可供程序员调用。面向对象的代码组织形成的库叫类库,面向过程的代码组织形成的库叫函数库。WebDriver 就属于库的范畴,因为它提供了一组操作 Web 页面的类与方法,所以可以称它为 Web 自动化测试库。(2)框架框架的英文单词是 Framework,框架是为解决一个或一类问题而开发的产品,用户一般只需使用框架提供的类或函数,即可实现全部功能。unittest 框架主要用于测试用例的组织和执行,以及测试结果的生成。

2021-07-13 16:47:05 483 1

原创 4.WebDriver API

WebDriver API,它可用来操作浏览器元素的一些类和方法。1.从定位元素开始浏览器打开一个百度首页网页,上面有很多元素:输入框,按钮,文字链接,图片等元素。自动化测试要做的就是模拟鼠标和键盘来操作这些元素,如单击、输入、鼠标悬停等。而操作这些元素的前提是要定位它们。通过 Chrome 浏览器自带的开发者工具可以看到,页面元素都是由 HTML 代码组成的,它们之间有层级地组织起来,每个元素有不同的标签名和属性值,WebDriver 就是根据这些信息来定位元素的。WebDriver 提供了 8

2021-07-12 20:59:34 462

原创 3.Python基础

1.Python 哲学Python IDLE 的 Shell 模式下输入:import this,你会看到一段话,这就是 Python 之禅,也可以看作 Python 设计哲学。2.输出(1)打印python 用 print() 方法来打印信息。print("hello python")name = "tom"age = 27print("name is : " + name + ", age is : " + str(age))print("name is : %s, age is

2021-07-10 11:25:27 396 1

原创 2.测试环境搭建

1.安装 Python官网:https://www.python.org。选择合适的 Python版本,64 位系统选择64 版本,下载完成后会得到一个.exe 文件,双击进行安装即可。(Python 3.8.3),配置系统变量,Path 添加 Python安装 目录以及其目录下的 Script 文件夹目录(共2个路径,后者让我们正常使用 pip 命令)。命令行窗口输入 “python” 命令可执行即可。2.安装 Selenium命令行窗口,输入命令:pip install selenium 即可。

2021-07-09 17:33:38 189 1

原创 1.自动化测试基础

1.分层的自动化测试2.适合自动化测试的项目3.如何学习UI自动化测试4.Selenium简介5.appium简介1.分层的自动化测试测试金字塔,敏捷大师 Mike Cohn 基本观点:我们应该有更多低级别的单元测试,而不仅仅是通过用户界面运行端到端的高层测试。Martin Flowler 大师在测试金字塔基础上提出分层自动化测试的概念,添加“分层”二字区别“传统的”自动化测试。所谓传统的自动化测试我们可以理解为基于产品 UI 层的自动化测试,它是将黑盒功能测试转化为由程序或工具执行的一.

2021-07-08 10:35:17 261 1

原创 18.网页抓取的法律与道德约束

本章内容介绍美国与网页抓取相关的法律(以及一些国际法),并学习如何分析网页抓取行为的法律和道德约束。1.商标、版权、专利知识产权有 3 种基本类型:商标(用 TM 或 ® 表示)、版权(用 © 表示)和专利(有时会用文字说明某发明受专利保护或注明专利号,但通常没有任何说明)。专利只是用来声明发明的所有权。图片、文字和任何信息本身不能获得专利权。获得专利权的是这些无形的东西(技术),而不是专利报告中的内容。商标(trademark)是一个单词、词组、符号和 / 或设计,用来标识和区分一种商品的来源。

2021-07-05 15:47:57 330

原创 17.远程抓取

不只是在单独的进程中运行爬虫,而是完全在单独的机器上运行爬虫。本章内容介绍让程序在不同的机器上运行,或者在你的电脑上用不同的 IP 地址运行。当你停止在自己的笔记本电脑上运行 Python 爬虫后,生活会变得更加轻松。1.为什么要用远程服务器使用远程服务器可能像是启动一个供广大用户使用的 Web 应用时所采取的必然步骤。启用远程平台的人通常基于两个目的:需要更强的计算能力和更大的灵活性,以及需要使用可变 IP 地址。(1)避免IP地址被封杀创建网络爬虫的第一原则是:几乎一切都可以伪造。但有一样

2021-07-04 17:52:08 193

原创 16.并行网页抓取

网页抓取通常并不能单纯依靠“给问题增加更多的进程”来提升速度。运行多个程序未必能将速度提升几倍,而且可能会被远程服务器封杀。在某些场景中使用并行网页抓取或者并行线程(thread)/ 进程仍然有些好处:从多个数据源(多个远程服务器)而不只是一个数据源收集数据;收集数据的同时,在已收集到的数据上执行时间更长 / 更复杂的操作(例如图像分析或者 OCR 处理);从大型 Web 服务收集数据,如果你已经付费,或者创建多个连接是使用协议允许的行为。1.进程和线程Python 既支持多进程(multi

2021-07-03 21:02:24 162

原创 15.用爬虫测试网站

网站的前端测试经常最后才做,或者指派给低级程序员去做,最多再给他们一个检查表和一个 bug 跟踪器。就可以把检查表变成一系列单元测试,用网络爬虫代替人眼进行测试。本篇内容将介绍测试的基础知识,以及如何用 Python 网络爬虫测试各种简单或复杂的网站。1.测试简介什么是单元测试对于程序员来说,测试和单元测试(unit test)这两个词基本可以看成是等价的。单元测试通常具有以下特点:每个单元测试用于测试一个组件的功能的一个方面。通常,一个组件的所有单元测试都集成在同一个类(class)里。每

2021-07-03 09:54:45 1497

原创 14.避免抓取陷阱

避开抓取陷阱的目的是克服网站阻止自动抓取这个障碍。1.道德规范在抓取那些不想被抓取的网站时,其实存在一些完全符合道德和法律规范的理由。例如抓取客户信息后让服务器删除这些客户信息。虽然不太可能建立一个完全“防爬虫”的网站,但本章内容可以帮助人们保护自己的网站不被恶意攻击。禁止某一类信息的传播并不一定是件百利而无一害的事。注:这里演示的许多程序和介绍的技术都不应该在任何一个网站上使用。不仅因为这么做不好,而且你也可能会收到一封勒令停止警告信,甚至有可能发生更糟糕的事情。2.让网络机器人看着像人类

2021-07-02 16:08:51 143

原创 13.图像识别与文字处理

本篇重点介绍机器视觉的一个分支——文字识别,介绍如何用一些 Python 库来识别和使用基于文字的图像。验证码(CAPTCHA)就利用了这种人类用户可以正常读取但是大多数机器人都无法读取的图片。将图像转化成文字被称为光学字符识别(optical character recognition,OCR)1.OCR库概述Python有很多库可以进行图像处理,但这里只重点介绍两个库:Pillow 和Tesseract。这两个库互为补充,共同对互联网上的图片进行处理和 OCR 识别。Pillow 执行第一步,

2021-06-12 17:44:16 1631 2

原创 12.利用API抓取数据

随着 JavaScript 和 Ajax 内容的生成和加载变得越来越普遍,解决该问题的方法之一:利用 Selenium 让浏览器自动加载网站并获取数据。本章完全不用理会 JavaScript(没有必要运行甚至是加载 JavaScript),直接获得数据源:生成数据的 API。1.API概述API 定义了允许一个软件与另一个软件通信的标准语法,即便是这两个软件是用不同的语言编写的或者是架构不同。本篇重点介绍 Web API(特别是允许 Web 服务器与浏览器交流的 API),,在其他上下文中,API

2021-06-02 16:00:13 4942 2

原创 11.抓取JavaScript

客户端脚本语言是运行在浏览器而非服务器上的语言。客户端语言成功的前提是浏览器能够正确地解释和执行这类语言。通常在网上遇到的客户端语言只有两种:ActionScript(开发 Flash 应用的语言)和JavaScript。总之,抓取 Flash 页面的需求并不多,现代网页中普遍使用的客户端语言是JavaScript。JavaScript 是 Web 上最常用也是支持者最多的客户端脚本语言。它可以收集用户跟踪数据,不需要重载页面直接提交表单,在页面中嵌入多媒体文件,甚至运行在线游戏。网页源代码的scrip

2021-05-31 16:33:43 551 1

原创 10.穿越网页表单与登录窗口进行抓取

之前和之后的网络爬虫在和 Web 服务器进行数据交互时,基本都是用 HTTP协议的 GET 方法去请求信息。POST方法,即把信息推送到 Web服务器进行存储和分析。就像网站的链接标记可以帮助用户发出 GET 请求一样,HTML 表单可以帮助用户发出 POST 请求。1.Python Requests库Requests 库就是一个擅长处理复杂的 HTTP 请求、cookie、header(响应头和请求头)等内容的 Python 第三方库。和任何 Python 第三方库一样,Requests 库也可以用

2021-05-25 11:06:28 297

原创 9.自然语言处理

理解文本分析的原理对各种机器学习场景都是非常有用的,而且还可以提高自己利用概率论和算法知识对现实问题进行建模的能力。1.概括数据简单修改一下我们在第 8 章用过的 n-gram 模型,就可以用来获得 2-gram 序列的频率数据,并返回一个 2-gram 的 Counter 对象,代码如下:# -*- coding: GBK -*-from urllib.request import urlopenfrom bs4 import BeautifulSoupimport reimport str

2021-05-24 15:59:38 325

原创 8.数据清洗

1.编写代码清洗数据语言学里有一个模型叫 n-gram,表示文字或语言中 n 个连续的单词组成的序列。在进行自然语言分析时,使用 n-gram 或者寻找常用词组,可以很容易地把一句话分解成若干个文字片段。维基百科词条“Python programming language”中找到的 2-gram 列表,代码如下:# -*- coding: GBK -*-from urllib.request import urlopenfrom bs4 import BeautifulSoupdef getN

2021-05-18 11:30:53 464

原创 7.读取文档

互联网最基本的特征:作为不同类型文件的传输媒介。互联网并不是一个 HTML 页面的集合。它是一个由多种类型的文档构成的集合,而 HTML 文件经常被用作展示文档的一个框架。1.文档编码文档编码的方式通常可以根据文件的扩展名进行判断。从根本上说,所有文档都是由 0 和 1 编码而成的。纯文本文件、视频文件和图像文件的唯一区别,就是它们的 0 和 1 面向用户的转换方式不同。2.纯文本读取网页纯文本文件,用以下代码读取:from urllib.request import urlopentextP

2021-05-17 19:05:29 236

原创 6.存储数据

随着数据不断增多,需要进行数据聚合和分析。3 种主要的数据管理方法,它们对绝大多数应用都适用。让爬虫把数据写入数据库;收集网上的文档,然后保存到你的硬盘里;每天定时收集当天累计的数据,就给自己发一封邮件。1.媒体文件存储媒体文件有两种主要方式:只获取文件 URL 链接,以及直接把源文件下载下来。只获取文件 URL 链接:耗费的流量更少,节省存储空间,代码更容易写,降低目标主机服务器的负载。存储外站URL被称为盗链(网站采取防盗链措施),链接文件在别人的服务器(被动),盗链容易改变或失效,下载文件会让

2021-05-16 17:37:10 218

原创 5.Scrapy

Scrapy提供了一个整洁的框架来帮你组织代码。1.安装Scrapya.在D盘的新建的文件夹web_crawler,命令行窗口进入到该文件夹下,执行命令python -m venv crawler_env,创建虚拟环境crawler_env,然后执行命令crawler_env\Scripts\activate激活虚拟环境。b.先安装wheel模块,pip install wheel,然后安装twisted模块,访问https://www.lfd.uci.edu/~gohlke/pythonlibs/#

2021-05-14 17:58:25 191

原创 4.网络爬虫模型

你可能需要灵活地控制要抓取哪些网站以及如何抓取,还需要一种在不需要编写很多代码的情况下,尽可能快地添加新网站或者修改已有网站的方法。1.规划和定义对象当决定抓取哪些数据时,最好的做法是忽视所有的网站。要自问“我需要什么?”,然后想方设法从中寻找所需信息。对你考虑的每一项都做一个清单检查,问自己:这个信息可以帮助项目实现目标吗?是否可有可无?信息可能之后需要抓取,后抓取的难度大吗?数据是否冗余?将数据存储在这个对象中是否符合逻辑?(例如产品在不同网站描述不一样,则无需存储描述信息)确定抓

2021-05-13 16:46:01 1114

原创 3.编写网络爬虫

我们经常需要用爬虫遍历多个页面甚至多个网站。之所以叫网络爬虫,是因为它们可以在 Web 上爬行。它们本质上就是一种递归方式。使用网络爬虫的时候,必须非常谨慎地考虑需要消耗多少带宽,还要尽力思考能不能让抓取目标的服务器负载更低一些。1.遍历单个域名六度分隔理论:把不相干的两个事物通过一个链条连接起来。获取一个页面上指向其他词条的所有链接:# -*- coding: GBK -*-from urllib.request import urlopenfrom bs4 import Beautiful

2021-05-12 19:43:05 291

原创 2.复杂HTML解析

是滴是滴

2021-05-11 21:26:56 237

原创 1.初见网络爬虫

1.1网络连接Web 浏览器是一个非常有用的应用,它创建信息的数据包,命令操作系统发送它们,然后把你获取的数据解释成漂亮的图像、声音、视频和文字。但是,Web 浏览器就是代码,而代码可以分解成许多基本组件,可重写、重用,以及做成我们想要的任何东西。urllib是Python的标准库(无需额外安装),包含了从网页请求数据,处理cookie,甚至改变像请求头和用户代理这些元数据的函数。urlopen用来打开并读取一个从网络获取的远程对象。# -*- coding:GBK -*-from urllib.

2021-05-10 20:23:08 182

原创 20.设置应用程序的样式并对其进行部署

1.设置项目“学习笔记”的样式

2021-05-10 16:00:52 160

原创 19.用户账户

1.让用户能够输入数据(1)添加新主题创建基于表单的页面的方法与前述相同:定义一个URL,编写一个视图函数并编写一个模板,差别在于,这个需要导入包含表单的模块forms.pya.用于添加主题的表单,新建forms.py文件,存储在models.py所在目录下,添加的类继承了forms.ModelForm,简单的ModelForm版本只包含内嵌的Meta类,它告诉Django根据哪个模型创建表单,以及在表单中包含哪些字段。forms.py 代码如下:from django import forms

2021-05-09 17:13:03 128

原创 18.Django入门

1.建立项目Django是一个Web框架——一套用于帮助开发交互式网站的工具。响应网页请求,更轻松地读写数据库、管理用户等。(1)制定规范规范:我们要编写一个名为“学习笔记”的Web应用程序,让用户能够记录感兴趣的主题,并在学习每个主题的过程中添加日志条目。“学习笔记”的主页对这个网站进行描述,并邀请用户注册或登录。用户登录后,就可创建新主题、添加新条目以及阅读既有的条目。(2)建立虚拟环境。要使用Django,需要建立一个虚拟工作环境(系统的一个位置),在其中安装包,并将其与其他Python包

2021-05-08 16:01:13 146

原创 17.使用API

1.使用Web API:Web API是网站的一部分,用于与使用非常具体的URL请求特定信息的程序交互。这种请求称为API调用。将使用GitHub的API来请求有关该网站中Python项目的信息,然后使用Pygal生成交互式可视化,以呈现项目的受欢迎程度。Github上的项目存储在仓库中,仓库里包含于项目相关联的一切:代码、项目参与者的信息、问题或bug报告等。GitGub用户可以给项目加星(star)表示支持,或跟踪用户可能想使用的项目。浏览器访问:https://api.github.com/sear

2021-05-07 09:16:40 133

原创 16.下载数据

不东方概的风格

2021-05-06 15:50:33 377

原创 15.生成数据

安装matplotlib:首先需要安装Visual Studio,浏览器访问https://visualstudio.microsoft.com/zh-hans/downloads/ 下载社区版Visual Studio——一组免费的Windows开发工具,然后运行安装程序。接下来安装matplotlib,浏览器访问https://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib,查找与你使用的Python版本匹配的wheel文件,本机Python版本为3.6此处

2021-05-03 20:59:06 329

原创 14.计分_2(提高等级、计分)

2.提高等级:将游戏设置划分成静态的和动态的两组。对于随游戏进行变化的设置,确保在开始新游戏时被重置。settings模块定义速度增加倍率speedup_scale。新建方法initialize_dynamic_settings(),将要随着游戏进行会产生变化的设置放在该方法中设置初始值。然后新建方法increase_speed()方法,将要变化的设置进行有规律的增加速度。game_funciton模块对函数star_game()和check_bullet_alien_collisions()分别分别调

2021-05-03 09:49:02 168

空空如也

空空如也

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

TA关注的人

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