- 博客(40)
- 收藏
- 关注
原创 Python3学习笔记_app自动化测试_总结_20200818
Python3学习笔记_app自动化测试_总结_20200818小程序如果想演示小程序测试的话,可以下载软件:ApowerMirror来投屏显示模拟小程序测试,最好使用真机,不要使用模拟器现在的小程序测试不是一定要root的,之后呢,无法确定,最好还是把手机root,避免一些环境问题如果发现一些软件无法进行测试的时候,可以曲线救国,软件:VirtualXposed,这个是App端测试的工具,无需root显示所有的窗口: driver.window_handles如何确认要定位的元素
2020-08-19 12:04:57
256
原创 Python3学习笔记_app自动化测试_框架搭建_20200815
Python3学习笔记_app自动化测试_框架搭建_20200815App 和 web 的框架是一样的因为都是UI测试app 中使用的 appium 继承于 web 中的selenium步骤框架搭建(目录结构)准备测试用例手工测试步骤封装页面行为自动化用例编写UI测试用例的步骤1、前置条件2、封装页面行为3、调用行为4、断言有些数据涉及到安全,我们在上传到git时,可以过滤掉,不上传这时候,我们需要建一个文件:.gitignore 然后里面写上需要过滤掉的文件名
2020-08-19 12:03:58
224
原创 Python3学习笔记_app自动化测试_混合应用_20200813
Python3学习笔记_app自动化测试_混合应用_20200813创建driver对象,session会话一定要记得手工关闭session不要让appium自动退出appium 官网appium.io## 返回driver.back()## 原生应用中,源代码是xml的文档,获取源代码driver.page_source()## 获取坐标(你现在的位置)driver.orientation## 设置坐标---(海拔,经度,纬度)driver.set_location
2020-08-19 12:02:52
594
原创 Python3学习笔记_app自动化测试_通用操作_20200811
Python3学习笔记_app自动化测试_通用操作_20200811API操作-driver.start_activity() 跳动到指定的页面-swipe() 滑动-触屏操作-多指操作(放大,缩小)-键盘输入app元素操作-id-content-desc=====>driver.find_element_by_accessibility_id()-uiautomator======>driver.find_element_by_android_uiautomator()
2020-08-19 11:57:43
818
原创 Python3学习笔记_app自动化测试_元素定位_20200808
Python3学习笔记_app自动化测试_元素定位_20200808appium serverinspect 用来进行元素定位的工具 查找元素是否唯一appium 原理appium 是基于selenium 实现的selenium 在源码层面是怎么完成客户端到服务端的处理信息的? 通过Chrome()这样一个类初始化一个服务端,运行chromedirver 初始化一个客户端,远程连接,给服务端发送一个HTTP请求 (先启动服务端,然后通过发送请求的客户端请求
2020-08-09 16:32:57
272
原创 Python3学习笔记_app自动化测试_快速启动_20200806
Python3学习笔记_app自动化测试基础一_20200806appium 介绍appium 是一个开源的测试自动化框架,可以与原生的、混合的和移动的 web 应用程序一起使用它使用 WebDriver 协议驱动iOS、Android 和 Windows 应用程序平台支持: ios 用到的框架:XCUItest Android 用到的框架: uiautomator2、 espresso
2020-08-07 14:59:42
224
原创 Python3学习笔记_app自动化测试_环境安装_20200804
Python3学习笔记_app自动化测试环境安装_20200804app自动化测试 VS 接口自动化测试接口更重要App自动化测试 VS web自动化测试同等重要,都是UI的一种web是以网页,浏览器的形式存在的app是以手机上的应用形式存在的只是展示的方式不一样,但是在测试的时候,都是在测页面手机上的app不是手机上的网页,网页指的是HTMLweb展示页面是以:HTML css js 为技术栈的安卓:java /kotlin(谷歌官方扶持的,想放弃Java,因为Java是Oracl
2020-08-06 17:38:11
196
原创 Python3学习笔记_web自动化基础十三_20200801
Python3学习笔记_web自动化基础十三_20200801Python经典循环导入问题:多个模块互相调用的时候,避免互相调用造成死循环的问题,如果真的有两个模块要互相调用,可以将导入的代码写到函数里面,不写到模块开头对于异常的处理,加日志记录#方法1:直接写到定义的方法里,使用系统自带的find_element,这样的话比较繁琐,凡事使用系统自带的find_element都要单独写异常处理,太麻烦 def enter_username(self,username):
2020-08-06 17:36:01
181
原创 Python3学习笔记_web自动化基础十二_20200730
Python3学习笔记_web自动化基础十二_20200730如何避免出现上下两个页面同样的元素定位方式重合的问题?比如:index_page=loginactual=index_page.click_invest_btn().write_money(1).get_error_msg()还未进入首页呢,下面的第二行代码就执行了,就导致找不到元素,解决办法: -等待下一个页面加载完成 -使用强制等待:time.sleep(1) -讨巧的方式:进入这个页面之后
2020-08-06 17:32:05
152
原创 Python3学习笔记_web自动化基础十一_20200728
Python3学习笔记_web自动化基础十一_20200728By能够减少错误能够提高可读性比如: login_btn_locator1 = {"by":"class name", "value":"btn-special"} 改写成: login_btn_locator1 = {"by": By.CLASS_NAME, "value": "btn-special"}登录未授权(测试用例)toast弹窗的定位元素: 断点调试 在F12的模式下,切换到tab:so
2020-07-30 18:54:20
158
原创 Python3学习笔记_web自动化基础十_20200725
Python3学习笔记_web自动化基础十_20200725pytest 和 unittest 共用组合使用: unittest: 数据驱动,前置后置条件 ddt setUp tearDown self.assertTrue() pytest :运行用例 pytest.main() 自动收集 用例筛选 测试报告 测试插件分开使用: 全用unittes
2020-07-30 18:53:16
165
原创 Python3学习笔记_web自动化基础九_pytest_20200723
Python3学习笔记_web自动化基础九_pytest_20200723pytest特性可以用来进行接口,也可以用来web,也可以用来App,可以用来任何的自动化测试unittest也可以用来做web自动化,只不过pytest更方便用例标记 Markpytest.ini,注册一个标签@pytest.mark.标签名pytest -m "标签名"编辑器pycharm是可以设置编辑器为pytest或者是unittest的,但是建议是在命令行中,输入命令,执行用例,不管是什么编辑器都是可以
2020-07-24 17:58:35
200
原创 Python3学习笔记_web自动化基础八_框架搭建_20200721
Python3学习笔记_web自动化基础八_框架搭建_20200721selenium 操作浏览器的常用操作定位元素 xpath cssele.click()----点击ele.send_keys()-----用户输入窗口切换,iframe切换,alert切换三大等待ActionChains,.perform()下拉框操作,Select()发送JS,页面滚动,修改dom元素系统交互上传文件,pywinauto,pyautogui用例设计先通过Excel设计好用例
2020-07-22 15:59:17
141
原创 Python3学习笔记_web自动化基础七_三大切换_20200718
上节回顾三大切换driver.switch_to.window(window_handler) driver.window_handlers driver.window_handlers[-1]driver.switch_to.frame(frame_reference) -frame_reference:index [根据索引去传参数] -frame_reference:name [根据iframe的名称去传] -frame_reference:webelem
2020-07-22 15:56:39
168
原创 Python3学习笔记_web自动化基础六_三大切换_20200716
Python3学习笔记_web自动化基础六_三大切换_20200716三大切换:窗口切换: driver.switch_to_window(driver.window_handles[-1])iframe切换 如何判断该页面是否有iframe? 看定位到的元素的祖先元素是否包含iframe【确认有没有iframe,看下面的bar,有没有两个html/iframe】 如果有,要想定位里面的元素,必须进行iframe切换iframe 切换driver.swit
2020-07-17 17:46:34
147
原创 Python3学习笔记_web自动化基础五_三大等待_20200714
Python3学习笔记_web自动化基础五_三大等待_20200714元素等待的三种方式:非智能等待: 强制等待: time.sleep() 时间不好控制,不知道要等待多久,不够灵活 有多少个元素等待,就需要设置多少次 智能等待:给你一个超时时间,如果在超时时间之内能够找到,就直接返回元素,如果超时,就会报错 隐性等待: 全局设置,全局生效 设置超时时间,超过超时时间,就会报错
2020-07-17 17:38:02
156
原创 Python3学习笔记_web自动化基础四_元素定位_20200709
Python3学习笔记_web自动化基础四_元素定位_20200709八大元素定位方式:1、id---------经常使用2、name-------经常使用3、class_name-----经常使用4、tag_name------不常用以上四种,本质上来说都是通过css_selector来定位的,所以说到底,可以说是有四种元素定位方式:link_text,partial_text,xpath,css_selector5、link_text----通过超链接的文本,不常用6、partial_l
2020-07-10 18:48:06
188
原创 Python3学习笔记_web自动化基础三_JS+DOM_20200707
Python3学习笔记_web自动化基础三_JS+DOM_20200707javascript和Java有什么关系?-没关系-纯属蹭热度JavaScript【JS】在浏览器中的网页显示中的角色是?-HTML,负责显示静态页面,标记型语言-css,美化,排版-JavaScript,负责动态展示,交互,特效JS原理:-Python通过selenium向webdriver发送请求,-webdriver接收到请求后,通过JS向浏览器操作浏览器-每个浏览器都装有一个JS解释器,所以JS可以直接操
2020-07-08 15:35:12
223
原创 Python3学习笔记_web自动化基础二_HTML_20200704
Python3学习笔记_web自动化基础二_HTML_20200704HTML,需要进行元素定位-元素定位的依据HTML的结构:<html> <head>页面的源信息和摘要信息</head> <body>主体部分</body></html>构成:-标签名 -属性,ID,name,class,href,src -子标签 -text 文本内容所有的 HTML 的元素的构成部分都可以
2020-07-07 15:30:10
171
原创 Python3学习笔记_web自动化基础一_快速使用_20200702
Python3学习笔记_web自动化基础一_20200702本节内容:selenium的安装selenium的快速使用requests如何处理cookie什么是selenium-selenium是浏览器自动化的框架-用来做web自动化测试-App测试也是用的selenium,很多同学听说的都是App测试是用的appium,实际上appium的底层是用selenium做驱动的浏览器是:浏览器是指可以显示网页服务器或者文件系统的HTML文件(标准通用标记语言的一个应用)内容,并让用户与这些文件
2020-07-03 16:47:17
234
原创 Python3学习笔记_接口问题总结_20200623
Python3学习笔记_接口问题总结_202006231、为什么得到预期结果是从postman获取?从postman中得到的结果是开发写的接口实际返回的结果,如果跟接口文档写的不一样,那就是有bug自己的写的代码请求接口如果与postman写的返回的结果不一致,那就是自己写的代码有问题其实,使用postman请求接口,就能知道有没有bug,我们写的代码返回与postman得到的做比较,如果这个接口是稳定性的,那么只是为了回归保障性测试2、为什么代码写的接口和postman请求,传参一样,接口地址
2020-06-23 16:26:39
162
原创 Python3学习笔记_接口基础五_20200613/16/18/20
Python3学习笔记_接口基础五_20200613/16/18/200613解决三个问题:①手机号码动态生成②框架优化:使用中间层,middler ware③__:私有属性动态替换手机号的标志:#phone#0616:1、登录接口①账号替换②拼接URL③ 断言:code,msg④得到token,member_id⑤登录成功的手机号和密码可以提前准备测试账号:-直接放到Excel当中-放入yaml配置文件,Excel数据使用#mobile_phone# #password#标识
2020-06-21 18:56:33
136
原创 Python3学习笔记_接口基础四_20200611
Python3学习笔记_接口基础四_20200611什么是json?json是一个字符串格式,有特定的要求json当中的true,false,null,双引号数据格式转化:json.loads() json转字典,有sjson.dumps() 字典转json,有s#示例:a='{"username":"lemon","password":"123456"}'#判断是不是一个json,可以到网上找json工具去验证#b不是json,得用双引号,单引号是不行的b="{'userna
2020-06-21 18:42:31
134
原创 Python3学习笔记_接口基础三_20200609
Python3学习笔记_接口基础三_20200609接口文档接口概述: 主要定义接口的一些通用规则,是后端你工程师指定的 备注:接口当中一般都是只给请求正常的用例,不会给异常的用例, 需要我们自己去postman中请求来获取异常用例的响应体【也就是预期结果】 同时预期结果需要我们自己判断一下,是否正确postman:请求方法params:填的内容是query string,如果填写了,postman会自动在URL上添加参数Authoriz
2020-06-11 18:53:26
125
原创 Python3学习笔记_接口基础二_20200606
Python3学习笔记_接口基础二_20200606接口基础二-requests:1、造轮子:-自己造:优:自己写模块,库,自己做,出现问题,自己非常熟悉,方便调试缺:容易崩,耗时间,需要技术-借别人的:优:直接拿来用,免费的,现成,成熟,不容易出问题缺:自己不熟悉,需要一定的时间去熟悉别人的操作手册,出现问题不容易改-买别人的:付费,未开源2、访问一个接口excel:-Excel openpyxlhttp:-requests-httpx-aiohttp (async–异步访问)
2020-06-11 18:50:52
117
原创 Python3学习笔记_接口基础一_20200604
Python3学习笔记_接口基础_202006041、HTTP协议#示例1:http://www.keyou.site:8000/docswww.keyou.site:8000—服务器地址/docs-----------------接口地址接口返回来的数据是json格式什么是接口?硬件接口:两个不同的硬件设备之间的连接比如:USB接口、耳机接口作用:连接功能,适配功能软件接口:两个或多个软件之间的连接内部接口:客户端与服务器的接口,用来实现客户端和服务器间的数据传递外部接口:第三方
2020-06-05 11:29:08
356
原创 Python3学习笔记_基础知识总结_20200602
Python3学习笔记_基础知识总结_20200602基础知识总结:1、没有时间做作业?作业一定要做,即使不提交2、某个知识点跟不上?也一定要跟直播,直播学的是思路和实现方式,录播学的是知识3、想不明白的知识点?偶尔拿出来想一想4、没有太过深入?重点:零编程经验快速上手5、忠告?坚持就是胜利知识难点:1、isinstance–判断数据类型的#示例:a=[]if type(a)==list: print('hello')=====>等价于:if isinstance(a
2020-06-04 17:54:14
215
原创 Python3学习笔记_配置文件+框架设计_20200530
Python3学习笔记_配置文件_2020053027、配置文件1、配置文件指的是在一个项目当中,对项目进行配置(设置)的一些数据,这些数据在项目的运行过程中一般不会变化,对于不同的项目,或者不同的环境可能需要变化2、配置文件:.ini.conf.cfg.yaml.yml3、作用:将所有的代码和配置都变成模块可配置化,这样就提高了代码的重用性,不用每次都去修改代码内部,这个就是我们逐步要做的是事情,可配置化4、使用.yaml.yml配置文件格式:字典格式:env: u
2020-06-03 19:08:02
337
原创 Python3学习笔记_logging_20200528
Python3学习笔记_logging_2020052825、logging日志接口测试基础框架搭建1、unittest2、Excel3、ddt4、logging日志管理5、yaml配置文件logging日志管理:不用print显示程序执行的状况日志的种类:控制台信息文件形式日志的作用:出现问题以后,排查问题,定位问题的依据测试写的代码,有没有可能出问题?有测试自己写的代码,也会出bug,也会有错误,也需要记录日志,排查问题日志的级别:debug-----用来调试【输出详
2020-06-03 19:03:42
155
原创 Python3学习笔记_unittest+openpyxl+ddt_20200521/0523/0526
Python3学习笔记_unittest_2020052124、unittest单元测试什么是单元测试?单元:函数或类单元测试:测试函数或类为什么要做单元测试?好处:投入小,收益大,能够精准的更早的发现bug单元测试跟我们有什么关系?Python很难测试Java的单元单元测试一般是开发或者测试开发做的自动化测试:集成,系统,验收单元测试框架:可以用来进行:单元测试,集成测试,系统测试内置的单元测试框架:unittest#示例1:def login(username=None,
2020-05-22 16:19:10
306
原创 Python3学习笔记_类的继承_20200519
Python3学习笔记_类的继承_2020051922、类的继承父类 子类1、继承如何表示?class 子类名(父类名): pass2、子类可以实现自己独有的方法重写:子类可以覆盖父类的方法当子类和父类具有同样的方法或者属性的时候,父类还是会用父类的,子类不再用父类的,而是用自己的#示例1:class Phone: """手机""" def __init__(self, number): self.number=number def
2020-05-21 10:36:52
141
原创 Python3学习笔记_类和对象_20200514/0516
Python3学习笔记_类和对象_2020051421、类和对象1》概念什么是类?俗话说:人以群分,物以类聚,种类/分类英文:class群体什么样的东西可以形成一个类?人类、禽类、兽类因为他们有相似点,有共同之处#示例1:白敬亭:男易烊千玺:男-----------男人类class Man: pass什么是对象?object又被称为实例:instanceobject:东西是一个群体当中的成员/个体Man 类里面的对象:白敬亭、易烊千玺2》类和对象在Pytho
2020-05-15 16:24:43
154
原创 Python3学习笔记_异常处理/模块和包_20200509/0512
Python3学习笔记_异常处理_2020050919、异常处理#异常是程序出现了意想不到的情况#有异常出现,要不要去解决?要#如果异常不解决,程序会崩溃,停止运行,下面的代码没法运行#异常捕获,捕获异常#如果出现异常,我们会让他按照事先规定的规则去执行对应的操作,记录错误日志,logtry 要运行的有可能发生异常的代码: 代码except 异常: 出现异常的时候要运行的代码(执行的操作),记录日志#一旦try当中出现异常,立即跳到except子句,try剩下的代码不会再
2020-05-14 10:07:11
194
原创 Python3学习笔记_文件操作_20200507
Python3学习笔记_文件操作_2020050718、文件操作#open()打开文件,打开文件有什么用?数据是写在文件当中的读取数据写入数据复制一张图片#打开文件file=open('python29.txt') #没有这个文件打不开#读取数据data=file.read()print(data)#关闭文件file.close()#写入文件当打开的文件不存在时,直接使用:file=open('new_file.txt')是会报错的,说明打开的方式不对f
2020-05-14 09:56:07
147
原创 Python3学习笔记_函数_20200425/0428/0430
Python3学习笔记_函数_2020042516、函数什么是函数?当输入一定的数据以后,能根据里面呢的执行步骤,算出另一些数据的值得到数据,获取输出值y=x+1 1》函数在Python当中怎么定义,怎么使用 def(空格)函数的名称(函数的参数1,参数2,参数3): """文档字符串 docstring 函数的注释,这个函数是干嘛用的 ...
2020-04-26 17:49:56
127
原创 Python3学习笔记_if+for+while_20200423
Python3学习笔记_if+for_2020042313、条件控制:ifif的表示:if 条件表达式: 条件满足以后要运行的代码注意:遇到冒号要缩进;缩进:一个缩进用4个空格#4个空格并不等于1个tab,但是效果是一样的,格式是不一样的#在pycharm里面4个空格和一个tab是没有区别的,因为是可以设置的#但是在服务器端或者其他的编辑器里面,就不能这么用了,所以要统一...
2020-04-24 11:50:44
169
原创 Python3学习笔记_字典+元组+集合_20200421
Python3学习笔记_字典+元组+集合_2020042110、字典 :也是存储多个数据的my_songs=[‘晴天’,‘云南之上’,‘老男孩’,‘月亮之上’,‘微微’,]print(my_songs[3])print(my_songs[4])#列表缺陷:存储多个数据的时候,不知道元素具体表达的含义是什么#字典能够表示出每个元素具体的意思#字典的表示方法:{key:values,ke...
2020-04-23 10:28:52
171
1
原创 Python3学习笔记_字符串_20200416
Python3学习笔记_20200416⑧ 字符串:以引号括起来的数据类型就是字符串 引号可以是: 单引号(只能是单行字符串) 双引号(只能是单行字符串) 三引号(可以是多行字符串,三引号可以是三个单引号,也可以是三个双引号) 【三引号需要用到的时候为字符串,不用的即为注释】字符串操作:1、字符串运算:成员运算 in/not in...
2020-04-21 11:25:03
149
原创 Python3学习笔记_列表_20200418
Python3学习笔记_20200418⑨ 列表:最重要的数据类型# 列表的表示:[]表示列表#列表是存储多个数据的数据类型my_list=["yuze","notice","new"]print(my_list)# list()---类型转换的时候用的my_list=["yuze","notice","new"]my_list_1=list()print(my_list_1...
2020-04-21 11:24:55
131
原创 python3学习笔记_基础语法_20200414
python3学习笔记_20200414① 标识符:(我们自己命名的)第一个字符必须是字母表中字母或下划线;标识符的其他的部分由字母、数字和下划线组成;标识符对大小写敏感比如包名(文件夹)、模块名(文件)、变量、函数名、类名等都是标识符标识符的作用:表明身份,更好的让别人记住② 注释:为了解释代码的意思单行注释:#多行注释:’’’ 或 “”"快捷键:ctrl+/③ 缩进:现在...
2020-04-21 11:24:48
290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人