12 2020 档案
摘要:一、测试bai方式不同 1、黑盒测试:du功能测试,是zhi通过测试来检测每dao个功能zhuan是否都能正常shu使用。 2、白盒测试:称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。 二、测试目的不同 1、黑盒测试:把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下
阅读全文
摘要:装饰器 廖雪峰python网站学习:https://www.liaoxuefeng.com/wiki/1016959663602400/1017451662295584 在不改变原函数情况下进行功能扩展。这个不改变包括函数内部的逻辑,和函数的调用代码。只需要在原来函数上方加一个魔术方法。 ** 设计
阅读全文
摘要:单例模式: 就是确保一个类只有一个实例.当你希望整个系统中,某个类只有一个实例时,单例模式就派上了用场。 比如,某个服务器的配置信息存在在一个文件中,客户端通过AppConfig类来读取配置文件的信息. 如果程序的运行的过程中,很多地方都会用到配置文件信息,则就需要创建很多的AppConfig实例,
阅读全文
摘要:"Aa,Bb,Cc,Dd" 去重排序代码: s = "Aa,Bb,Cc,Dd" ss = set(s)ss = list(set(s)) ss.sort(key=s.index)print(ss)解释:s = "Aa,Bb,Cc,Dd" #定义一个初始字符串变量,将它赋值给变量s ss = set(
阅读全文
摘要:sort方法和sorted()函数的区别: 相同点:都能完成排序操作。 不同点: (1)使用sort()方法对list排序会修改list本身,不会返回新list,sort()不能对dict字典进行排序; (2)sorted方法对可迭代的序列排序生成新的序列,对dict排序默认会按照dict的key值
阅读全文
摘要:一、反射机制简介: 通过字符串的形式导入模块 通过字符串的形式,去模块中寻找指定的函数,并执行 规定用户输入格式 模块名/函数名 通过__import__的形式导入模块,并通过 hasattr和getattr 检查并获取函数返回值。 相关方法: getattr:--根据字符串的形式去某个模块中寻找东
阅读全文
摘要:一、MySQL 关系型数据库。 在不同的引擎上有不同 的存储方式。 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。 开源数据库的份额在不断增加,mysql的份额页在持续增长。 缺点就是在海量数据处理的时候效率会显著变慢。 二、Mongodb 非关系型数据库(nosql ),属于文档
阅读全文
摘要:数据与分析-CPU 启动优化原则 启动优化技术图 Atlas 升级 去安全混淆: 主线程任务约束: 异步任务治理 启动框架-NextLauncher: 启动打散 ⽹络治理 zcache 重构: orange 优化: ⻓效机制
阅读全文
摘要:从安全性优先级来说: 1、优先级 Cookie<session<token 2、 安全性 Cookie: ①cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session ②HTTP是一种无状态协议,服务器没有办法单单从网络连接上面知道访问者的身
阅读全文
摘要:uiautomator方法定位app元素: appium在android端是调用其底层的UIAutomator2自动化测试框架去驱动自 动化,在定位元素的时候,可以借助UIAutomator2的语法来实现定位。在代码 实现上提供的API是find_element_by_android_uiautom
阅读全文
摘要:github代码:: https://github.com/w550856163/App_Demo.git tag: V1.1 Appium Inspector定位工具界面介绍: Selecte Elements :根据元素定位 Swipe By Coordinates:根据坐标滑动页面 Tap B
阅读全文
摘要:Json Wire Protocol: 它是一种协议,遵循REST风格,以JSON方法进行传输,是一系列的键值对, 遵循W3C WebDriver Spec设计风格;appium中的Json wire protocol继承自 selenium的webdriver wire protocol,并进行了
阅读全文
摘要:appium服务器初始化参数 最全: https://github.com/appium/appium/blob/master/docs/cn/writing-running-appium/caps.md 检查环境是否安装成功: 1、启动android虚拟机 2、打开appium桌面版,弹出界面,不
阅读全文
摘要:1.1 列表常用方法 # 1. append 用于在列表末尾追加新的对象a = [1,2,3]a.append(4) # the result : [1,2,3,4]# 2. count方法统计某个元素在列表中表现得次数a = ['aa','bb','cc','aa','aa']print(a.c
阅读全文
摘要:请求的构成: 1)请求方法URI协议/版本 2)请求头(Request Header) 3)请求正文 1)请求方法URI协议/版本 Request URL: http://localhost:8080/Gary_Text/ 资源的请求url Request Method: GET HTTP方:GET
阅读全文
摘要:1、get 请求和 post 请求的区别是什么? 2、requests 模拟 get 请求时,有哪两种方式让响应的结果不是乱码?(直接代码描述) 3、requests 库中的 post 方法,参数 url\params\json\data\headers 各自的用途是什么? 4、json 模块中,j
阅读全文
摘要:一: 二: (1)get把请求的数据放在url上,即HTTP协议头上,其格式为: 以?分割URL和传输数据,参数之间以&相连。 数据如果是英文字母/数字,原样发送, 如果是空格,转换为+, 如果是中文/其他字符,则直接把字符串用BASE64加密,及“%”加上“字符串的16进制ASCII码”。 (2)
阅读全文
摘要:mac可以参考该博客安装: https://www.cnblogs.com/dream66/p/12372650.html mac下搭建python+appium环境 可以参考该博客安装: https://www.cnblogs.com/dream66/p/12372650.html 搭建过程步骤如
阅读全文
摘要:测试流程: –测试需求分析 –测试计划阶段 –测试设计和开发阶段 –测试实施阶段 –测试评估阶段 测试方法:等价类、边界值、因果图、正交排列、状态图。
阅读全文
摘要:下载地址:http://tools.android-studio.org/index.php/sdk 2.找到tools文件夹 选中android-sdk-macosx包下的tools文件夹,按command+option+c按键,复制当前路径 3.打开终端 粘贴刚才的路径,将目录切换至tools目
阅读全文
摘要:提供百度云网盘下载地址。(神秘代码:7ax4)参考:https://www.cnblogs.com/kareza/p/JDK.html
阅读全文
摘要:windows下搭建jenkins:安装方法一:1、安装JDK,配置好环境变量2、下载安装最新版本Jenkins:登陆 http://mirrors.jenkins-ci.org/ 下载windows版本下载的压缩包内含一个.msi程序,直接安装3、安装好后,jenkins会在windows服务中生
阅读全文
摘要:api_case运行所有的excel用例: 处理警告: 网页报告产出: run_all_case.py import osimport unittestfrom utils import HTMLTestReportCNfrom utils.config_utils import local_con
阅读全文
摘要:samples: import paramunittestimport unittest@paramunittest.parametrized( (10,20), (30,40), # (100,20))class ApiTestDemo(paramunittest.ParametrizedTest
阅读全文
摘要:多借口顺序执行: 接口关联: 接口断言设计: paramunittest基础应用讲解 paramunittest批量用例执行
阅读全文
摘要:samples: ⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️ 正则比对: 检查头部: Connection,Content-Length 此时的check_utils.py # -*- coding: utf-8 -*-#@File :check
阅读全文
摘要:检查json_key_value: 检查: requests.py # -*- coding: utf-8 -*-#@File :demo_04.py#@Auth : wwd#@Time : 2020/12/10 9:09 下午import jsonimport jsonpathimport req
阅读全文
摘要:key_value断言: demo5.run_check('json_key')传入json_key,调用self.function, self.function['json_key']() self.function是构造里面的一个字典类型的属性.里面指向了方法。 self.function['j
阅读全文
摘要:⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️ 测试: 断言处理: demo_04.pyimport jsonjson_obj = {"access_token":"39_qHfCmB0GdutZ2MXC0G5IbzrM3WY7E
阅读全文
摘要:demo_01.py import requestsimport resession = requests.session()get_param_dict={ "grant_type":"client_credential", "appid":"wx55614004f367f8ca", "secre
阅读全文
摘要:re的使用参考:正则表达式基础及re模块:https://www.cnblogs.com/dream66/p/12953729.html import restr1 = '{"access_token":${token}}'dict1 = {'token': 'AFABMG'}#成果:{"acces
阅读全文
摘要:举例子: demo01.py import jsonimport requestsimport jsonpathsession = requests.session()get_param_dict={ "grant_type":"client_credential", "appid":"wx5561
阅读全文
摘要:多步请求封装,执行完一个用例 def requests(self,step_info): request_type =step_info['请求方式'] if request_type=="get": result=self.get(step_info) elif request_type == "
阅读全文
摘要:字符串转化成字典: convert_to_dict.py: import jsonstr1 = '{"grant_type":"client_credential","appid":"wx55614004f367f8ca","secret":"65515b46dd758dfdb09420bb7db2
阅读全文
摘要:将结果的所有数据整理如下: {'api_case_01': [{'测试用例编号': 'api_case_01', '测试用例名称': '获取access_token接口测试', '用例执行': '是', '用例步骤': 'step_01', '接口名称': '获取access_token接口', '
阅读全文
摘要:把excel_oper02.py 里面实现的:通过字典的方式获取所有excel数据.放进utils: ⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️ utils: def get_all_data(self): ''' 把
阅读全文
摘要:excel02.py # -*- coding: utf-8 -*-#@File :excel_oper_02.py#@Auth : wwd#@Time : 2020/12/7 8:16 下午import xlrd3workbook = xlrd3.open_workbook('test_data_
阅读全文
摘要:import xlrd3workbook = xlrd3.open_workbook('test_data.xlsx')sheet =workbook.sheet_by_name('Sheet1')print(sheet.cell_value(0,3)) #第0行,第3列print(sheet.ce
阅读全文
摘要:import osimport configparsercurrent_path =os.path.dirname(__file__)#获取config当前文件路径config_file_path = os.path.join(current_path,'..','conf','localconfi
阅读全文
摘要: 1框架数据源概述 2处理数据源用到的工具包详解 3数据源处理设计思路和实战 1框架数据源概述 框架中的数据源是指作为测试框架执行时,输入的相关 配置数据、测试用例数据等。 配置数据一般使用后缀为.ini的文件进行配置,主要对比 如测试主机地址、测试日志和报告路径等进行配置。 在实际的框架
阅读全文
摘要: 1自动化测试框架概念 2自动化测试框架思想 3接口自动化测试框架设计目标 4接口自动化测试框架用到的技术点 1自动化测试框架概念: 自动化测试框架是一个集成体系,这个体系中包含测试功能的函数库、测试数据源 、测试对象以及可重用的模块。 框架(framework)是一个框子——指其约束
阅读全文
摘要:git下载地址: https://git-scm.com/download mac 直接使用brew下载brew install git 1Git一般工作流程: 1、在工作目录创建版本库 2、在工作目录中操作文件 3、将需要进行版本管理的文件放入暂存区域 4、将暂存区域的文件提交到 Git 仓库 5
阅读全文
摘要:分支管理: 一、创建分支 为了便于理解,先在master分支上做两个增量提交版本,操作如下: 1、手动新增一个new01.py文件,内容为print('new01') 2、使用 git add * 、git commit -m “第一次提交” 进行提交 3、手动新增一个new02.py文件,内容为p
阅读全文
摘要:标签管理:标签 tag 是某个提交 commit 的指针,一个提交可以有多个标签。标签方便后期回溯。 常用操作: git tag 标签名:对当前版本创建轻标签 git tag :查询已创建标签 git show 标签名: git tag 标签名 -m “注释信息”/ git tag -a 标签名 -
阅读全文
摘要:Android Monkey 压力测试 介绍 Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上。 Monkey会发送伪随机的用户事件流,适合对app做压力测试. 目录 环境搭建 什么是Monkey Monkey 用来做什么
阅读全文
摘要:目录 一、adb用法大全图 二、adb是什么,学习它有什么意义? 三、常用adb 命令 四、常用 adb shell 命令 五、参考资料 一、adb用法大全图 二、adb 是什么,学习它有什么意义? adb 其实就是 Android Debug Bridge, Android 调试桥的缩写,adb
阅读全文
摘要:Free:查看内存 vi:打开vi编辑器 top:实时显示系统中各个进程的资源占用状况。 rm -rf :删除不提醒。 find:查找命令 grep:匹配正则表达式 mv:移动或者更名。 du:查看文件大小。 mount:挂载磁盘。 tar -zxvf:解压gizp包。 查看后台日志名称:tail
阅读全文
摘要:1 数据库基础: 增删改查:insert into delete update select 聚合函数:sum count max min avg 排序:order by asc desc 子查询:select *from stuinfo where id =(where max(id) from
阅读全文
摘要:demo01.py 异常处理 # 异常处理# 下标越界# 语法顺序:try --except --else --finallytry: # try下面写可能出错的代码# num = input('请输入1-5之间的数字:') lista = [1,2,3,4,5] print(lista[num])
阅读全文
摘要:demo1.py# 抽象类# 1 抽象类要有抽象方法# 2 要有抽象类的定义语句# 3 抽象方法要被继承的,不然毫无意义from abc import ABCMeta,abstractmethodclass animal(metaclass=ABCMeta): __metaclass__ = ABC
阅读全文
摘要:demo.py# 多态:一类事物具有多种形态,必须要有继承# 多态性:多态性是指具有不同功能的函数可以使用相同的函数名# txt文件 -- 双击# MP4视频from abc import ABCMeta,abstractmethodclass File(metaclass=ABCMeta): @a
阅读全文
摘要:demo01.py 单继承 # 继承:一个类获取另外一个类的属性和方法的过程#人类:属性 name,age,sex 方法:say() sleep()#学生:属性 name,age,sex 方法:say() sleep() study()class people: #父亲 def __init__(s
阅读全文
摘要:class people: def __init__(self,name,money): self.name = name self.__money = money # 私有属性,只能在类的内部使用 '''def say(self): print('我有{}钱'.format(self.__mone
阅读全文
摘要:用for循环实现冒泡排序(升序): array = [3,2,1] for i in range(len(array) - 1, 0, -1): for j in range(0, i): if array[j] > array[j + 1]: array[j], array[j + 1] = ar
阅读全文
摘要:Python提供了一系列丰富的运算符,包括: Ø算术运算符 Ø赋值运算符 Ø关系运算符 Ø逻辑运算符 Ø位运算符 Ø三元运算符 Ø身份运算符 Ø成员运算符
阅读全文
摘要:一,数字。 2. 字符串类型 3.列表 4.元组 5.集合 6.字典 7.数据类型转换: 8.序列操作
阅读全文