- 博客(45)
- 资源 (1)
- 收藏
- 关注
原创 monkey测试教程3—常用命令详解
1. 指定app测试 Monkey是一个app稳定性测试工具,由于Monkey可以给app做很多次随机事件,所以Monkey也有时候当做app压测工具。下面举例,Monkey给指定app做随机1000个事件,输入命令为:命令格式:adb shell monkey -p com.android.calculator2 1000判断monkey是否执行成功,Events injected的数量等于预设定的值1000,就表示测试完成。其中com.android.documentsui就是指定app的包
2021-05-18 15:57:33
875
原创 monkey测试教程2—基础命令
1.基本环境配置 安装JDK,SDK并配置好PC端的环境变量,确认环境配置好的方法,在DOS命令下输入如下命令,正确显示JDK和ADB的版本号即为成功。2.移动端配置 进行monkey测试的移动端安卓设备,需要进入USB调试状态,才能进行测试,一般进入开发者选项打开USB调试即可,验证PC端和手机端连接成功的方法是输入adb devices命令,若手机与电脑已连接成功,就会出现红色框中所示设备信息,若没有这证明连接不成功。3.基本monkey命令 基本环境和移动端设备配置完成后,就可以进
2021-05-17 15:19:24
528
原创 monkey测试教程1—monkey基础知识
1.什么是Monkey?Monkey是发送伪随机用户事件的工具。2.Monkey在哪里?每台Android手机里都有Monkey工具,是一个不可视化工具,手机需要借助adb才能与Monkey进行通讯。3.什么是ADB?Android Debug Bridge——安卓调试桥,简单来说就是我们用来操作(调试)安卓设备的一套指令集。ADB最常用的连接方式是网络TCP和USB cable。我们要通过shell来操作安卓操作系统,而安卓和IDE(开发环境)之间需要ADB来桥接。ADB是一个C/S架构的
2021-05-17 14:40:36
482
1
原创 组合最大数
题目:组合最大数输入:输入一个多个数字组成的字符串,数字之间以逗号隔开。输出:输出多个数字组成的最大数,最大数以字符串的形式输出。输入举例:7,1212,568,121,81,333输出举例:8175683331212121解题思路:可以将组合最大数的问题理解成数组排序的问题,在python里就是列表排序的问题。定义函数compare逐位比较两个连接字串str1=str1+str2和str2=str2+str1,当两字串数字相等时,继续往下比较,当str1[i]>str2[i]时返回True
2021-04-09 17:21:11
1194
原创 Web自动化测试实战11—记录日志
前面我们需要查看代码信息时,就直接调用print函数在控制台输出,但是实际测试的时候,可能需要大量的调试信息来定位问题,这时候只靠print不能解决根本问题。因此python提供了logging模块,来解决这一问题,接下来我们将围绕logging模块进行讲解。1.logging类 python的内置日志模块logging提供了通用的日志系统,可以根据测试的需要采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式。logging
2021-02-26 17:51:12
736
原创 Web自动化测试实战10—截图方法
在自动化测试过程中,截图是一种常用的辅助测试手段,特别是当用例运行出错时,需要用到截图方式来记录下错误结果,以便后续定位错误,在webdriver中提供了四种网络页面截图的方法。截图方法具体用途driver.get_screenshot_as_file(filename)获取截屏png图片,参数是文件的绝对路径,截屏必须是.png图片。如果只给文件名,截屏会存在项目的根目录下。driver.save_screenshot(filename)获取截屏png图片,参数是文件的
2021-02-25 15:12:22
1612
1
原创 Web自动化测试实战9—获取元素属性
在爬虫中经常需要处理链接相关的问题,而在html代码中链接一般都是通过href属性来表示的,这里我们就利用之前提到的get_attribute()方法来获取链接内容。举例:百度首页获取全部链接启动浏览器打开百度首页,https://www.baidu.com定位所有链接,xpath表达式://*[@href]通过get_attribute方法获取所有链接退出浏览器,结束测试from selenium import webdriverfrom time import sleepdr
2021-02-25 10:04:13
242
原创 Web自动化测试实战8—弹框处理
在WebDriver中处理JavaScript所生成的alert、confirm以及prompt十分简单,只需要使用switch_to.alert定位到alert/confirm/prompt,然后使用text/accept/dismiss/send_keys等方法进行操作。弹框类型有:弹框类型特性alert警告类,显示警告或其他信息只有一个确认按钮confirm确认类,询问是否继续某种操作等功能只有两个按钮:确认按钮+取消按钮prompt消息类,需要输入
2021-02-25 09:35:43
1409
原创 Web自动化测试实战7—多窗口切换
在页面操作过程中,有时候点击某个链接会弹出新的页面窗口,这时就需要切换到新打开的窗口上进行操作。WebDriver提供了switch_to.window()方法来实现不同的窗口之间的切换。常用方法有:current_window_handle:获得当前窗口句柄window_handles:返回所有窗口的句柄到当前会话switch_to.window():用于切换到相应的窗口举例:实现百度首页和百度新闻页面两窗口之间的切换启动浏览器打开百度首页,https://www.baidu.co
2021-02-24 16:02:12
651
1
原创 Web自动化测试实战6—键盘操作
Keys类提供了键盘上几乎所有的按键方法,也可以根据需要进行组合按键,例如全选、复制、剪切、粘贴等操作。1)在使用各种按键和组合按键前,需要先导入Keys类: selenium.webdriver.common.keys import Keys2)常用的按键和组合按键用法:模拟按键方法模拟按键send_keys(Keys.BACK_SPACE)删除键(BackSpace)send_keys(Keys.SPACE)空格键(Space)send_keys(Ke
2021-02-24 14:31:17
391
原创 Web自动化测试实战5—鼠标操作
在前面我们已经学习过用click()来模拟鼠标的单击操作,而在实际的web产品测试中发现,关于鼠标的操作,不单单只有单击,有时候还要有右击,双击,拖动等操作,这些操作包含在ActionChains类中。ActionChains类鼠标操作的常用方法:perform() 执行所有ActionChains中存储的行为context_click() 右击double_click() 双击drag_and_drop() 拖动举例:在百度首页,鼠标右键点击百度Logo。启动
2021-02-24 10:16:53
827
原创 Web自动化测试实战4—页面元素常用操作
页面元素的操作相对浏览器页面来说较少,主要是元素大小尺寸等基本信息以及点击,输入,清除等常规操作。举例1:获取百度登录基本信息<a class="s-top-login-btn c-btn c-btn-primary c-btn-mini lb" onclick="return false;" name="tj_login" href="https://passport.baidu.com/v2/?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.c
2021-02-24 09:30:07
194
原创 Web自动化测试实战3—浏览器常用操作
本章主要介绍webdriver中提供的一些浏览器操作的基本使用方法,主要有浏览器窗口大小设置,浏览器页面的前后跳转等。举例:启动后浏览器,这里我们用Chrome打开百度首页,https://www.baidu.com获取当前页面的窗口大小设置当前页面窗口大小为(800,400)打开百度新闻,http://news.baidu.com返回百度首页,并延时5秒前进到百度新闻页面,并延时5秒刷新百度新闻页面,并延时3秒退出浏览器,结束测试from selenium import we
2021-02-23 15:40:43
222
2
原创 Web自动化测试实战2—定位元素的八种方式
Webdriver提供了八种基本元素定位的方法方法用法特性idfind_element_by_id()元素id具有唯一性namefind_element_by_name()元素名称,可以不唯一,需要通过层级和属性结合或者二次定位class namefind_element_by_class_name()元素类名,用法与id,name类似,通过class属性来定位元素tag namefind_element_by_tag_name()标签li
2021-02-22 16:58:38
283
原创 Web自动化测试实战1—Selenium Webdriver常用API
Selenium Webdriver是Selenium里面最重要的东西,提供了web自动化的各种语言调用接口库,主要是是通过各种浏览器的驱动(web driver)来驱动浏览器的,下面是其原理的示意图: 由上图可知,Selenium Webdriver库中所有API的调用,都需要先获取浏览器实例driver,例如Chrome,Firefox,IE浏览器实例的获取方法:driver=webdriver.Chrome() #初始化一个谷歌浏览器实例driver=webdriver.firef
2021-02-22 11:36:37
282
1
原创 Jmeter接口测试1—主要元件介绍
Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试。Jmeter安装成功后,直接进入安装包目录下bin文件,双击jmeter.bat即可进入jmeter界面。 Jmeter主要元件如上图所示,有线程计划、线程组、取样器(Sampler)、逻辑控制器、前置处理器、后置处理器、断言、定时器、配置元件、监听器等。1.Jmeter元件功能介绍线程计划:是使用 Jmeter进行测试的起点,它是其它 JMeter测试元件的容器。线程组:代表一定数量的
2021-02-19 16:31:37
265
原创 接口测试入门系列3—cookie和session
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。Cookie机制: 在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。 而Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器
2021-02-09 14:52:06
267
原创 接口测试入门系列2—HTTP协议
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。 HTTP是基于TCP/IP通信协议来传递数据(HTML文件、图片文件、查询结果等)。1.HTTP协议工作原理 HTTP协议工作于客户端-服务器架构上,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。 Web服务器有:Apache服务器,IIS(Internet Infor
2021-02-09 11:20:10
210
原创 排序算法6—归并排序
归并排序是采用分治法的一个非常典型的应用,另一个可以采用分治法的是快速排序,归并算法比快速排序速度稍低。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。如 设有数列{6,202,100,301,38,8,1}初始状态:6,202,100,301,38,8,1第一次归并后:{6,202},{100,301},
2021-02-08 09:49:58
303
原创 排序算法5—快速排序
快速排序,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 原理:从序列中找出一个基准元素,然后大于该元素的放到一边,小于该元素的放到另一边形成分区;然后在分别冲大小分区中再找基准再分别分出相对大小分区,这样递归的完成快速排序。图解算法:1)初始状态,设置基准值,将数组中的第一个值作为基准值,即数字6。2)第一次循环,j找到小于6的值后,停止
2021-02-08 09:44:46
132
原创 排序算法4—希尔排序
希尔排序是插入排序的一种又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止. 希尔排序的核心是对步长的理解,步长是进行相对比较的两个元素之间的距离,随着步长的减小,相对元素的大小会逐步区分出来并向两端聚拢,当步长为1的时候,就完成最后一次比较,那么序列顺序就出来了。 如上面实例:第一次排序
2021-02-08 09:31:49
486
原创 排序算法3—插入排序
插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。算法步骤:将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)排序思路:(假设从小到大)python实现1:pytho
2021-02-08 09:10:59
66
原创 排序算法2—选择排序
选择排序,简单而直观,其原理是把序列中的最小值或者最大值找出来放在起始位置,然后再从剩下的序列中找出极值放到起始位置之后,以此类推最后就完成排序。python实现:运行结果:
2021-02-07 16:34:00
124
1
原创 排序算法1—冒泡排序
冒泡排序:一个经典的排序算法,因在算法运行中,极值会像水底的气泡一样逐渐冒出来,因此而得名。冒泡排序的过程是比较两个相邻元素的大小,然后根据大小交换位置,这样从列表左端开始冒泡,最后最大值会依次从右端冒出。python实现:运行结果: python实现冒泡排序的核心思想是通过从列表一端迭代循环元素,再通过一个循环让这个元素之后的元素相邻两个比较,从而依次将最大值移动到最末端。 关于冒泡排序的时间复杂度,在上面python实现的代码中时间复杂度是Ο(n^2 ),当然可以再考虑一下极端的情况:当
2021-02-07 16:27:45
84
原创 Postman接口测试6—命令行执行
1.安装node 执行命令行前提条件是需要newman,newman是需要nodejs来安装的,所以需要下载安装node,安装node地址是:https://nodejs.org/dist/v12.16.2/,因为更高的版本不支持win7系统。安装完成后,在cmd窗口输入命令,查看node和npm版本,能正常显示版本,即安装成功:2.安装newman 先以管理员身份执行:cmd npm install --global --production windows-build-tools 添加w
2021-02-07 14:39:18
385
原创 Postman接口测试5—数据驱动
数据驱动就是数据的不同造成结果的不同,比如登录接口,我们要测试账号正确,密码为空,密码错误等多种情况,这时候我们就会思考可不可以将这些数据放到一个文件中,然后让一个接口循环读取这个文件里的数据去执行,答案是可以的,我们先创建文件数据和接口。1)生成并解析数据文件 在这里我们以一个登陆api接口为例,下图为需要导入到postman的csv数据文件,Collection Runner里可以导入一个csv或json文件。数据文件中,登陆所需要的数据为登陆账户email和登录密码password,断言需要
2021-02-07 14:31:39
570
原创 Postman接口测试4—批量执行
在测试接口的时候,有时候我们希望执行所有的测试用例,postman提供了批量执行的功能。点击左上角的Runner: 进入用例选择界面,可以根据测试需要选择测试用例集,也可以选择用例集中需要测试的对应用例,用例选择完成后,点击Run按钮开始批量执行用例。 执行完成后,会统计出测试结果,如下图所示, 成功了3个,失败了1个,失败的原因是设置的断言响应时间少于200ms,实际是474ms。...
2021-02-07 11:12:37
339
原创 Postman接口测试3—常见测试断言方式
在做接口测试时,某些场景下需要添加断言,对接口进行判断,postman在"Tests"中提供了比较多的断言方式来帮助接口测试的断言。现在我们用一个接口测试进行举例:接口地址:https://www.v2ex.com/api/nodes/show.json?name=pythonMethod:GETAuthentication:None1)判断状态返回码判断状态返回码的状态是否为200,200就是正常。断言代码:pm.test("Status code is 200", function
2021-02-07 11:06:56
1125
原创 Postman接口测试2—添加变量
postman是一套比较方便的接口测试工具,我们在使用的过程当中,可能会出现创建了API但API的URL会随着服务器IP地址的变化而变化。这样的情况下,如果每个API都重新修改URL的话,那将是非常的麻烦,所以postman中也提供了环境变量的设置。postman可以设置多套环境,每套环境里可以有多个环境变量。1.我们可以在postman的右上角设置当前的环境Environment。2.添加postman网址(作为我们的测试环境)3.添加完成后,在右上角的地方我们就可以选择所需要的环境,然后再
2021-02-07 10:13:17
482
原创 Postman接口测试1—请求发送方式
HTTP有多种请求方法,如GET、POST、PUT、DELETE、PATCH、HEAD等,,不同的请求方法定义了请求如何被服务器处理。其中比较常见的四种请求方式是GET、POST、PUT、DELETE,GET请求方法是从服务器检索数据,POST请求方法是将数据传输到服务器斌引发响应,PUT请求类似于POST,同样是将数据传输到服务器(并引发响应),DELETE请求方法用于在服务器上删除资源。下面将对四种常见的请求方式进行讲解:1.GET请求 GET请求是模拟前端向后端请求数据的时候,查看返回的数据
2021-02-07 10:04:41
545
1
原创 接口测试入门系列1—接口基础知识
1.接口定义 接口主要是用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点,通过一些特殊的规则也就是协议,来进行数据之间的交互。2.接口类型 接口一般分为两种:1.程序内部的接口 2.系统对外的接口系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库分享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部
2021-02-05 17:52:08
144
1
原创 Python打包EXE文件的方法
1.安装pyinstaller python打包exe可执行文件时,需要使用pyinstaller,可以直接使用命令pip install pyinstaller进行安装,显示安装成功后,就可以开始打包可执行文件了,如果不太确定也可以使用pip list命令查看是否存在对应的安装包及版本。2.打包单.py文件 python有时候只需要打包单个.py文件,这种情况就比较简单,一般不会遇到什么问题,直接在cmd下切换目录到.py文件所在目录,执行命令:pyinstaller -F test.py
2020-11-17 14:45:40
275
原创 CSS学习系列3—链接、列表和表格
1.链接属性(link) 链接属性用得比较多,不同的链接可以有不同的样式,特别的链接也可以有不同的样式,这取决于他们是什么状态。这四个链接状态是:a:link—正常,未访问过的链接a:visited—用户已访问过的链接a:hover—当用户鼠标放在链接上时a:active—链接被点击的那一刻当设置为若干链路状态的样式时,也有一些顺序规则:a:hover必须跟在...
2019-12-03 13:52:38
85
原创 CSS学习系列2—背景、文本和字体
CSS背景属性、文本属性和字体属性分别用于定义HTML元素的背景,文本和字体。1.背景属性(background) CSS属性定义背景效果:background-color(背景颜色)background-image(背景图像)background-repeat(背景图像水平或垂直平铺)background-attachment(背景图像是否固定或滚动)backdround-...
2019-12-03 11:42:51
133
原创 CSS学习系列6—居中对齐
对于CSS页面布局来说,居中对齐很常用,在这里我们归纳总结一下各种居中对齐的方法。1.页面居中对齐 居中对齐一个元素(如<div>)可以使用margin:auto,必须要设置元素的宽度,通过指定宽度,将两边的空外边距平均分配,达到页面元素居中对齐的目的。注意:如果不设置width属性(或设置为100%),居中对齐将不起作用。<html><head>...
2019-11-21 19:30:24
195
原创 CSS学习系列5—显示(display)与浮动(float)
显示和浮动是在CSS页面布局中运用比较多的两个属性。1.display(显示)与visibility(可见性) display和visibility都是定义一个元素显示的属性,display属性设置一个元素应该如何显示,而visibility属性指定一个元素是否可见。display属性:display属性可以用来更改内联元素和块元素,可以使页面以一种特定的方式进行组合。块级元素主...
2019-11-21 15:02:09
329
原创 CSS学习系列1—简介
CSS(Cascading Style Sheets)是指层叠样式表,是为了解决HTML中内容与表现分离的问题,可以极大的提高工作效率。外部样式表通常存储在CSS文件中,多个样式定义可层叠为一个。 <p style="color: blue;background-color: red;text-align: left;font-size: 20px">段落</p>...
2019-11-21 14:07:59
131
原创 CSS学习系列4—盒子模型(Box Model)
CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充和实际内容。对于盒子模型解析:Margin(外边距)—清除边框外的区域,外边距是透明的Border(边框)—围绕在内边距和内容外的边框Padding(内边距)—清除内容周围的区域,内边距是透明的Content(内容)—盒子的内容,显示文本和图像 当我们指定一个CSS元素的宽度和高度属性时,其实只是...
2019-11-21 13:55:03
132
1
原创 HTML学习系列6—HTML区块和布局
大多数HTML元素被定义为块级元素或内联元素。块级元素在浏览器显示时通常会以新行来开始,例如<h1>、<p>、<table>、<ul>等;内联元素通常不会以新行开始,例如<td>、<a>、<img>等。1.<div>和<span> HTML可以通过<div>和<s...
2019-11-19 16:25:22
252
原创 HTML学习系列5—HTML框架
HTML框架用<iframe>标签进行定义,通过使用框架,可以在同一个浏览器窗口显示多个页面。iframe语法格式为:<iframe src="demo.html" width=200px height=200px frameborder="0"></iframe> demo.html是指向的网页,width和 height属性分别用来定义ifram...
2019-11-19 14:46:55
96
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人