基本数据类型和变量1. 数值类型1.1 整数(int)
整数跟我们平常认识的整数一样,包括正整数、负整数和零,是没有小数点的数字
Python 可以处理任意大小的整数,例如:1,100,-8080,0,等等
1234print(1 + 2) # 3print(1 - 2) # -1print(1 * 2) # 2print(1 / 2) # 0.5
1.2 浮点型(float)
print(2/6): 小数点后默认只保留 16 位小数0.3333333333333333
使用round()函数可以指定输出有效位数(四舍五入)print(round(2/6,3))—-> 0.333
123print(0.55+0.41) # 0.96print(0.55+0.4) # 0.9500000000000001print(0.55*0.411) # 0.9610000000000001
因为计算机对浮点数的表达本身是 不精确 的。保存在计算机中的是二进制数,二进制对有些数字不能准确表达,只能非常接近这个数。
所以我们在对浮点数做运算和比较大小的时候要小心
1.3 算术 ...
方法封装123456789101112131415import yamlclass YamlHandler: def __init__(self,file): self.file = file def read_yaml(self,encoding='utf-8'): """读取yaml数据""" with open(self.file, encoding=encoding) as f: return yaml.load(f.read(), Loader=yaml.FullLoader) def write_yaml(self, data, encoding='utf-8'): """向yaml文件写入数据""" with open(self.file, encoding=encoding, mode='w ...
Appium 环境搭建一、 appium1. appium 介绍appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用。
原生应用 : 指那些用 iOS 或者 Android SDK 写的应用( Application 简称 app)。
web 应用 : 指使用移动浏览器访问的应用( appium 支持 iOS 上的 Safari 和 Android 上的 Chrome)。
混合应用 : 指原生代码封装网页视图——原生代码和 web 内容交互。
appium 是一个跨平台的工具:它允许测试人员在不同的平台( iOS,Android)使用同一套 API 来写自动化测试脚本,这样大大增加了 iOS 和 Android 测试套件间代码的复用性。
客户端、服务器架构
appium 的核心是一个 web 服务器
他接受来自客户端的连接,监听命令并在移动应用上执行,答复 http 响应来描述执行结果
session
自动化始终在一个会话中执行,客户端会给服务器发送请求
请求中包含一个被称作预期能力的 json 对象,这时候服 ...
元素定位操作一、 Appium 脚本架构进行 Appium 自动化测试之前,需启动 Appium 及被测对象,启动了 Appium 客户端后,利用编程工具执行脚本时, Appium 才能将脚本与被测设备建立联接,从而实现自动化测试。
如果不启动客户端,则不能使用 WebDriver。
脚本中需首先导入 WebDriver,然后配置 Server,告诉 Appium 测试环境。
使用 Desired_caps 函数进行设备联接信息。设备连接参数主要有以下常用参数
desired_caps={}:设备参数信息,声明为一个字典
desired_caps['platformName']:应用平台的类型,通常为 Android 或 IOS
desired_caps['platformVersion']:被测设备系统版本
desired_caps['deviceName']:设备名称,通过 adb devices 查看
desired_caps['appPackage']: Android 应用程序包的包名
desired_caps ...
Appium 手机及元素操作一、 按键模拟返回桌面
123driver.keyevent(3) # 3 对应 home 键time.sleep(3)
调节音量
1234driver.keyevent(24)time.sleep(3)driver.keyevent(25)time.sleep(3)
长按 home 键
1driver.long_press_keycode(3)
按键
说明
编号
KEYCODE_CALL
拨号键
5
KEYCODE_ENDCALL
挂机键
6
KEYCODE_HOME
按键 Home
3
KEYCODE_MENU
菜单键
82
KEYCODE_BACK
返回键
4
KEYCODE_SEARCH
搜索键
84
KEYCODE_CAMERA
拍照键
27
KEYCODE_FOCUS
拍照对焦键
80
KEYCODE_FOWER
电源键
26
KEYCODE_NTIFICATION
通知键
83
KEYCODE_MUTE
话筒静音键
91
KEYCODE_VOLUME_MUTE
扬声器静音键
164
...
appium 自动化项目架构一、 项目结构
整体的编写逻辑:
1、先设计功能测试用例
2、然后分析这个用例,用到了那些页面,哪些元素,封装在 pages
3、将功能测试用例翻译成代码
四包文件 :
libs : 用于存放 基本的 代码;
configs : 用于存放 配置文件;
test_case : 用于存放 测试用例;
tools : 用于存放 封装的 工具
四文件夹:
docs : 主要用于存放 和项目相关的文件;
logo : 主要用于存放 项目执行的日志;
report : 用于存放报告的 原始数据;
data : 用于存放 测试数据;
当 APP 自动化有多条测试用例的时候,我们很难保证上一条 case 的结束页面,恰好是下一个 case 的开始页面所以,设计 app 自动化用例的时候,保证每一条 case,都从首页开始,那么,也就要求我们,每一条 case 的开始,都要从 首页 写起,每一条 case 的结束,都要想办法回到 首页
二、 项目内容1. configs项目配置 —- settings.py
12345678910desire_caps ...
Seleniumy 元素定位Chrome 浏览器元素定位插件 — Ranorex Selocity
地址 : https://chrome.google.com/webstore/detail/ranorex-selocity/ocgghcnnjekfpbmafindjmijdpopafoe
一、 webUI 自动化1. 什么是 UI 自动化测试
通过代码来模拟人的手工操作,执行测试内容
自动化是为了代替重复的手工操作,提高测试效率,不是为了装 x
2. UI 自动化的价值
回归速度的对比,以前进行全量回归测试需要 x 天,现在有没有减少
负责功能测试的同事,是不是有更多的时间测试新需求了
自动化测试不是为了发现 bug,而是为手工测试节省回归时间
3. UI 自动化原理 selenium 与 webdriver
selenium 是一个用于 web 测试的工具,测试运行在浏览器当中
webdriver 对浏览器原生的 api 进行封装,使用这套 api 可以操作浏览器的操作页面元素、截屏等
我们使用 selenium 进行自动化,主要涉及三个方面:
测试脚本,就是你我写的代 ...
浏览器操作一、 selenium 与 webdriver
Selenium 是一个用于 Web 测试的工具,测试运行在浏览器中,就像真正的用户在手工操作一样。
支持所有主流浏览器,包括 IE, Mozilla Firefox, Safari,Google Chrome, Opera 等。
WebDriver 就是对浏览器提供的原生 API 进行封装,使其成为一套更加面向对象的 Selenium WebDriver API。
使用这套 API 可以操控浏览器的开启、关闭,打开网页,操作界面元素,控制 Cookie,还可以操作浏览器截屏、安装插件、设置代理、配置证书等
使用 Selenium 实现自动化测试,主要需要 3 个东西:
测试脚本,可以是 python, java 编写的脚本程序(也可以叫做 client 端)
浏览器驱动, 这个驱动是根据不同的浏览器开发的,浏览器不同,对应的驱动也不同,甚至同一浏览器不同的版本也需要不同的驱动
浏览器,目前 selenium 支持市面上大多数浏览器,如:火狐,谷歌, IE 等脚本操作驱动,驱动操作浏览器;浏览器返回给驱动,驱动返 ...
web UI 自动化实战一、 项目结构
整体的编写逻辑:
1、先设计功能测试用例
2、然后分析这个用例,用到了那些页面,哪些元素,封装在 pages
3、将功能测试用例翻译成代码
四包文件 :
libs : 用于存放 基本的 代码;
configs : 用于存放 配置文件;
test_case : 用于存放 测试用例;
tools : 用于存放 封装的 工具
四文件夹:
docs : 主要用于存放 和项目相关的文件;
logo : 主要用于存放 项目执行的日志;
report : 用于存放报告的 原始数据;
data : 用于存放 测试数据;
二、 项目内容1. configs初始化浏览器对象 —- myDriver.py12345678910111213141516171819202122232425262728293031323334353637383940from utils.mySettings import url, username, password, implicitly_time_outfrom selenium import webdriverc ...
一、 什么是性能测试?
通过工具,找出或获得系统在不同工况下的性能指标值
性能测试过程中,重点是找出**性能指标**,而不再是找出 Bug,
性能测试的产出绝对不只是 Bug
案例:跑步 100 米,用时多少?运动员的心跳、步伐频率是多少?
跑步 100 米:业务场景
用时多少:响应时间
运动员的心跳、步伐:性能指标值
性能指标值和响应时间是否满足当前业务场景的最低要求(合格线)
二、 获取基准值假设当前有一个业务电商系统,下单业务,目前还不知道系统支持多少人同时下单,那么我们需要找到服务器能正常支持多少人同时下单
性能测试初始阶段(第一次做)
先把基础的性能指标值找出来(第一次性能测试也叫做基准测试)
比如:100 个人同时下单系统正常,但 120 个人同时下单就会出现部分请求的响应时间超长,连接异常
那么 100-120 范围内的某个值就是当前服务器能达到的性能指标值(基准值)
版本迭代,进行第二次做性能测试,重新跑一遍之前的性能脚本
又会得到一些性能指标值,对比上个版本的性能指标值,看是否有优化(性能变化)
假设这个时候 120 个人同时下单是正常的,150 个人才有异常 ...















