python
python
似曾相识。
这个作者很懒,什么都没留下…
展开
-
显示等待、隐式等待和强制等待的区别
在实际使用selenium或者appium时,等待下个等待定位的元素出现,特别是web端加载的过程,都需要用到等待,而等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,在selenium中(appium通用)常用的等待分为显示等待WebDriverWait()、隐式等待implicitly_wait()、强制等待sleep()三种,下面我们就分别介绍一下这三种等待的区别sleep(): 强制等待,设置固定休眠时间。后脚本的执行过程中执行 sleep()后线程休眠,而另外两种线程不休眠。impli原创 2020-12-31 09:40:33 · 2303 阅读 · 0 评论 -
python常用模块
hashlib,md5模块datetime,date,time模块random模块string模块math模块importfrom…import核心模块1.1. 介绍1.2. _ builtin _ 模块1.3. exceptions 模块1.4. os 模块1.5. os.path 模块1.6. stat 模块1.7. string 模块1.8. re 模块1.9. math 模块1.10. cmath 模块1.11. operator 模块1.12. copy 模块原创 2020-12-30 16:51:01 · 232 阅读 · 0 评论 -
unittest——单元测试生成测试报告
1:导入unittest模块 >>>import unittest2:编写一个类继承unittest.TestCase3:调用setUp(self), tearDown(self)方法实现测试用例前后阶段的操作4:编写测试用例方法(1)该方法必须以test开头,否则在unittest.main()中调用测试找不到该方法(2)设置断言进行判断,输入数据和输出数据的预期结果5:创建套件,将多个测试用例存放套件中,一并执行()6:生成测试报告(python自带或者导入HTML原创 2020-12-30 13:52:52 · 351 阅读 · 0 评论 -
APP端自动化测试——模拟手势高级
TouchAction是AppiumDriver的辅助类,主要针对手势操作,比如滑动、长按、拖动等,原理是将一系列的动作放在一个链条中发送到服务器,服务器接受到该链条后,解析各个动作,逐个执行。手指轻敲操作模拟手指轻敲一下屏幕操作方法:tap(element=None, x=None, y=None)方法:perform() # 发送命令到服务器执行操作参数:1.element:被定位到的元素2.x:相对于元素左上角的坐标,通常会使用元素的X轴坐标3.y:通常会使用元素的Y轴坐标代码实现原创 2020-12-23 19:10:06 · 298 阅读 · 0 评论 -
APP端事件操作
swip滑动事件从一个坐标位置滑动到另一个坐标位置,只能是两个点之间的滑动方法:swipe(start_x, start_y, end_x, end_y, duration=None)参数:1.start_x:起点X轴坐标2.start_y:起点Y轴坐标3.end_x: 终点X轴坐标4.end_y,: 终点Y轴坐标5.duration: 滑动这个操作一共持续的时间长度,单位:ms滑动没有持续时间driver.swipe(188,659,148,248)# 滑动持续5秒的时间dri原创 2020-12-23 19:03:15 · 304 阅读 · 0 评论 -
通过元素定位获取元素的信息(APP端)
获取元素的文本内容:方法: texttext_vlaue = driver.find_elements_by_class_name("android.widget.TextView") for i in text_vlaue: print(i.text)方法:location get_value = driver.find_element_by_id("com.android.settings:id/search") 打印搜索按钮在屏幕上的坐标 print(get_val原创 2020-12-23 18:58:31 · 266 阅读 · 0 评论 -
APP元素定位操作(APP端自动化测试)
APP元素定位操作:namevalueid属性值id属性值classclass属性值xpathxpath表达式前置代码:from appium import webdriver# server 启动参数desired_caps = {}# 设备信息desired_caps['platformName'] = 'Android'desired_caps['platformVersion'] = '5.1'desired_caps['deviceNam原创 2020-12-23 18:53:27 · 226 阅读 · 0 评论 -
python+request+unittest+HTMLTestRunne——接口文档自动化测试
request:是接口测试框架unittest:是单元测试框架接口测试工具:postman、jmeter(性能测试工具)request:将任意的http请求接口当做一个测试用例请求方式:get/post/put/delete。。参数:字典格式出现 { }断言:assert()import unittestimport HTMLTestRunnerimport requestsclass testJiekou(unittest.TestCase): def setUp(原创 2020-12-23 15:24:01 · 224 阅读 · 0 评论 -
python+appium+unittest+HTMLTestRunner——APP端自动化测试
from appium import webdriverfrom time import sleepfrom appium.webdriver.common.touch_action import TouchActionimport HTMLTestRunnerimport unittestclass TestAppSettings(unittest.TestCase): # 初始化 def setUp(self): # server 启动参数原创 2020-12-23 15:05:59 · 339 阅读 · 0 评论 -
python+selenium+unittest+HTMLTestRunner——web端自动化测试
from selenium import webdriverimport timeimport unittestimport HTMLTestRunnerclass TestWork(unittest.TestCase): # 初始化 def setUp(self): # 打开百度 self.db = webdriver.Chrome() self.db.get("https://www.baidu.com/") s原创 2020-12-23 15:01:54 · 350 阅读 · 0 评论 -
selenium——web端自动化的定位方式
单个元素定位byIdbynamebyclass_namebyxpath # . <font>选择器 id class 标签by_css_selector定位超链接by_link_text通过标签名进行定位by_tag_name原创 2020-12-18 20:02:31 · 103 阅读 · 1 评论 -
python的算法(二分法、冒泡排序、选择排序)
1、二分法def erfen(alist,item): # 构造初始下标和结束下标 first = 0 last = len(alist)-1 # 构造循环比较条件 while first <= last: #构造中间值下标 mid = (first+last)//2 if item == alist[mid]: return True,alist.index(item)原创 2020-12-16 11:03:23 · 245 阅读 · 0 评论 -
用if、else、for写出来的直角三角形、九九乘法表
1、直角三角形,直角在右上角for i in range(9): for j in range(i): print(' ',end='') for k in range(i,9): print('$',end='') print()2、九九乘法表for i in range(1,10): for n in range(1,i+1): print('%sx%s=%s'%(n,i,n*i),end=' '原创 2020-12-16 10:55:28 · 434 阅读 · 0 评论 -
cnotinue、break、return区别(python)
三者都是为了跳出某种“窘境”,使用区别如下:return:直接返回函数,所有该函数体内的代码(包括循环体)都不会再执行。return的用法:跳出整个函数break:跳出所在的当前整个循环,到外层代码继续执行。break的用法:跳出该for循环continue:跳出本次循环,从下一个迭代继续运行循环,内层循环执行完毕,外层代码继续运行。...原创 2020-12-16 10:54:19 · 149 阅读 · 0 评论 -
python数据类型——集合
s = {1, 2, 3} # s:集合s2 = set() # s2:空集合l = [] # 空列表d = {} # 空字典# a = () # 空元组1、集合特性元素唯一 元素无序集合方法 添加 add:添加一个元素 update:将每个元素依次添加 In [38]: s = set()In [39]: s.update("hello")In [40]: sOut[40]: {'e', 'h', 'l', 'o'}In [41]: ..原创 2020-12-15 16:57:53 · 75 阅读 · 0 评论 -
python数据类型——字典
1、格式# {键:值}, 两者合称为键值对,多个键值对之间","隔开# d = {"a":1}In [77]: student = {"name":"贾长阳", "age":21, "gender":"未知"} In [78]: student["name"] Out[78]: '贾长阳'In [79]: student["age"]原创 2020-12-15 16:55:09 · 244 阅读 · 0 评论 -
python数据类型——元组
格式: a = (1, 2, 3)#a: tuple、元组 元组不能增、删、改其中的数据,但是可以直接删除整个元组 查找 index: 按照值去查找,存在,返回下标,不存在,报错 count: 存在,返回存在的次数,不存在,返回0 in: 判断是否在其中,在,True,不在,False not in: 判断是否不在其中,不在,True, 在, False ...原创 2020-12-15 16:49:25 · 345 阅读 · 0 评论 -
python数据类型——列表
1、列表格式用一对[]包括的数据,称为列表(list) 列表中存放的数据类型都可以 l = [12, 34] l2 = ["12", 23, 45.6]2、列表循环遍历l = [12, "12", 1.2]for i in l: print(i, type(i))# 12 int# 12 str# 1.2 float3、列表元素修改 添加 append(a):在列表末尾添加元素a insert(i, a):将元素a插入.原创 2020-12-15 16:46:32 · 339 阅读 · 0 评论 -
python数据类型——字符串
1、字符串下标对字符串的每个元素进行编号: 下标从0开始,每个下标都是整数s = “hello”#下标范围: 0-4通过下标来取出字符串中的元素#字符串名字[下标]s = “world”print(s[2]) # r下标为负,从右边第一个:-1到左边第一个-ns = “hello”s[-1] # os[-5] # h2、字符串操作替换 replaces = “hello python,hello world”s.replace(",", " “) # 将,替换为原创 2020-12-15 16:22:34 · 230 阅读 · 0 评论 -
python6种标准的数据类型
原创 2020-12-15 14:50:11 · 156 阅读 · 0 评论