自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 解决appium操作的元素与定位的元素不一致问题

有一阵子在学习appium自动化的时候,遇到个很奇怪的问题:定位元素属性没问题,但执行点击事件的时候总是点击不到我需要点击的元素。原因是:我们定位执行点击事件时,页面元素还未加载完坐标位置不对,所以点击事件有所偏差。现将解决思路记下来,方便日后查看思路:1、循环获取元素的坐标位置2、将获取的坐标位置添加到列表中3、统计判断坐标位置是否多次出现,多次出现则执行点击事件粗略的代码示例如下,这里只提供了解决思路可自行优化扩展:from appium import webdriverimport ti

2021-04-07 23:27:10 1337

原创 appium同时运行多台设备

前不久部门老大给了一个同时运行多台手机设备的任务,运行脚本时不用手动启appium服务代码自动启。现记录下来实现过程及结果。1、安装pyyaml及tomorrowpip install pyyaml (我这已安装过)pip install tomorrow (我这已安装过)2、安装命令行版appium2.1安装命令npm --registry https://registry.npm.taobao.org install -g appium2.2验证安装是否成功cmd里输入appium

2020-09-13 10:24:47 2841 9

原创 postman之接口依赖(pre_request_script)

postman

2020-08-16 18:00:27 1783

原创 postman数据驱动(批量执行)

postman数据驱动测试的时候一个接口所有的情况我们都得考虑到覆盖完,如果不用数据驱动一条一条去添加的话比较麻烦,再者也不好维护。1. 将测试数据填入表格中,然后再转换为csv格式文件再用Notepad++编辑器将字体转换成utf-8格式2.在postman中填入对应字段以及设置断言填入测试数据,需要传入的参数设置断言3、运行测试集设置运行参数4、最后附图测试结果...

2020-02-04 18:33:20 857

原创 postman之接口鉴权(Basic Auth)

postman接口鉴权鉴权很常见,有些功能只能登录后才能进行操

2020-02-04 16:38:31 5255 2

原创 postman之环境变量

postman环境变量postman环境变量有全局变量跟局部变量,postman自身也提供了一些变量供我们使用;这大大提升了我们工作的效率。变量使用场景有:1、一个数据需要重复使用。2、上一个接口的responsedata下个接口需要使用,有依赖关系。比如:cookies。3、数据要求唯一性。比如:id1. 设置环境变量2.使用环境变量...

2020-02-04 15:46:14 413

原创 postman断言

postman之js断言

2020-02-04 13:55:05 145

原创 postman基本使用(get、post)

postman(get-request、post-request)1、get-request2、post-request

2020-02-04 11:42:21 332

原创 python接口自动化之数据库操作

想要做python接口自动化,首先得安装2个第三方库。一个是requests另一个是PyMySQL,requests先不管,我们先配置连接mysql数据库。做接口自动化要做数据库迁移测试库跟正式库保持独立配置文件配置文件是.ini文件,如:db_config.ini[mysqlconf]host = 127.0.0.1 #数据库IPport = 3306 #端口号u...

2019-08-10 09:04:47 2176

原创 jmeter断言(JSR223断言)

JSR223断言,需要写js代码。要有一点js基础不然你将不知从何下手

2019-07-03 21:27:34 3345

原创 jmeter后置处理器(正则表达式提取器)

单模板单数据

2019-07-02 22:14:10 221

原创 jmeter后置处理器(css/jquery)

css/jquery后置处理器是通过css选择器定位页面元素并读取数据

2019-07-01 22:08:25 1613

原创 jmeter后置处理器(JSON提取器)

后置处理器是处理response信息的元件,JSON提取器是提取以json格式返回的数据

2019-06-30 21:02:43 896

原创 jmeter配置元件(随机变量)

随机变量应用场景:在一些数据要求不重复或者对要对数据进行区分的时候,我们可以采用随机变量来满足需求

2019-06-26 21:16:18 6467 1

原创 jmeter配置元件(用户自定义变量)

用户自定义变量的应用场景:当我们有少部分数据需要参数化的时候,“用户自定义变量”能够满足我们的需求。而不用每次都读取文件夹的数据。调用用户自定义设置的变量值...

2019-06-25 22:34:57 420

原创 关于无法执行页面元素操作的解决办法

开发自动化脚本的时候,页面元素无法聚焦或者click失效,导致click()无法执行。这个时候我们得祭出js大法。情况1:页面元素无法聚焦js = "document.getElementById('id').click();"driver.execute_script(js)情况二:js定位只有id和name属性是单一定位元素,其它定位方法都是复数(多个元素)。比如:tagname、c...

2019-06-25 21:59:34 503

原创 jmeter配置元件(HTTP默认请求值)

在手动开发脚本的时候每一个HTTP请求都需要填url地址,这样的话会有大量的重复性工作,而且脚本也不利于维护。针对于这种情况我们可以用“配置元件”里面的“HTTP默认请求值”来解决...

2019-06-24 21:43:42 148

原创 jmeter之配置元件(csv数据读取)

在测试工作中,为了保证数据的唯一性或者满足一些业务需求。我们往往需要对一些用户数据进行参数化。而在jmeter当中“配置元件”是专门干这种事的,帮我们参数化数据。在测试工作中我们常用的可能有:csv数据文件设置、HTTP信息头管理器、HTTP Cookie管理器、HTTP请求默认值、用户自定义的变量、随机变量csv数据文件设置,csv每运行一次只读取一行数据...

2019-06-23 22:17:40 696

原创 jmeter之取样器(HTTP请求、调试取样器)

取样器是用来模拟用户操作的,向服务器发送请求以及接收服务器的响应数据。jmeter提供的取样器种类如下图。在测试工作中用的最多的可能就是“HTTP请求”以及“调试取样器”,http之get请求http之post请求调试取样器,它是我们在开发脚本的时候调试用的。添加调试取样器后在察看结果树中能看到我们在脚本中所有参数化变量所取的值,这样有利于我们排错...

2019-06-23 12:43:33 22723 3

原创 selenium生成测试报告并发送到指定邮箱

发送测试报告邮件from HTMLTestRunner import HTMLTestRunnerimport unittestfrom email.mime.text import MIMETextfrom email.header import Headerimport smtplibimport timeimport os#定义发送邮件def send_mail(file...

2019-06-22 16:19:34 896

原创 selenium生成测试报告

单一脚本测试报告if __name__ == "__main__": #unittest.main() testunit = unittest.TestSuite() testunit.addTest(Test("test_dr")) #获取时间格式 now = time.strftime("%Y-%m-%d %H_%M_%S") #定义测试报告路...

2019-06-22 15:49:50 3459

原创 HTMLTestRunner文件

HTMLTestRunner测试报告文件"""A TestRunner for use with the Python unit testing framework. Itgenerates a HTML report to show the result at a glance.The simplest way to use this is to invoke its main met...

2019-06-22 14:55:00 165

原创 selenium断言方法

断言方法严格意义来讲,一个自动化脚本如果没有断言,它就不是一个完整的自动化用例。下面介绍常用的断言方法断言第一个参数跟第二个参数是否相等assertEqual(value1,value2,msg="assert失败") #断言相等assertNotEqual(value1,value2) #断言不相等#msg是可选参数,用于断言失败时打印的信息断言第一个参数是否包含在第二...

2019-06-22 14:46:08 8207 1

原创 selenium上传文件(autolt)

Autolt上传文件写UI自动化脚本的时候,有些业务场景避免不了要上传一些文件或者图片。如果是input输入框我们可以直接使用send_keys()进行上传,但如果不是,我们就得用第三方插件(Autolt)进行文件上传因为selenium不能操作操作系统。autolt下载地址:https://www.autoitscript.com/site/autoit/downloads/#autolt...

2019-06-22 00:31:01 558

原创 selenium多表单切换以及多窗口切换、警告窗处理

selenium表单切换在做UI自动化,有时候要定位的元素属性在页面上明明是唯一的。却怎么也不执行对元素的操作动作,这时候多半是iframe表单在作怪。切入表单:iddriver.switch_to_frame("id") #id属性值切入表单切入表单:namedriver.switch_to_frame("name") #name属性值切入表单切入表单默认取表单的id或...

2019-06-21 22:20:02 769 3

原创 selenium定位一组元素以及select、截图操作

定位一组元素定位一组元素跟定位一个元素的方法都是一样的,唯一不同的是element要加个s表示复数find_elements_by_name("name")应用场景:1、批量操作元素、比如勾选所有复选框2、先获取一组元素,过滤出要操作的元素获取一组元素中的某个元素进行操作:popfind_elements_by_name("name").pop().click()pop()或pop...

2019-06-20 23:32:18 633

原创 selenium设置元素等待时间以及获取验证信息

selenium设置元素等待时间设置页面识别等待时间30秒driver.implicitly_wait(30)设置页面加载超时时间driver.set_page_load_timeout(30)设置异步脚本加载时间driver.set_script_timeout(30)休眠时间import time #导入time模块time.sleep(3) #等待3秒获取...

2019-06-20 22:43:42 652

原创 selenium键盘事件

selenium键盘事件#导入keys模块from selenium.common.keys import Keys#常用的键盘操作send_keys(Keys.BACK_SPACE) #删除键send_keys(Keys.SPACE) #空格键send_keys(Keys.TAB) #制表键send_keys(Keys.ESCAPE) # 回退键send_keys...

2019-06-20 21:38:19 270

原创 selenium鼠标事件

selenium鼠标事件我们在做自动化测试的过程中,经常要模拟一些鼠标操作。比如说:鼠标悬停、双击、右击。下面就介绍下selenium的鼠标事件#导入ActionChains鼠标模块from selenium.webdriver.common.action_chains import ActionChains鼠标悬停:move_to_element()value = driver.fi...

2019-06-19 23:27:03 294

原创 selenium元素基本操作

selenium元素基本操作输入信息:send_keys()driver.find_element_by_id("id").send_keys("text")清除文本:clear()driver.find_element_by_name("name").clear()点击操作:click()driver.find_element_by_class_name("classname")....

2019-06-19 22:41:21 152

原创 selenium控制操作浏览器

selenium控制操作浏览器设置浏览器窗口显示大小dirver.set_window_size(800,600) #设置浏览器宽800,高600显示设置浏览器全屏显示driver.maximize_window()刷新页面driver.refresh()返回上一页面driver.forward()返回下一页面driver.back()退出关闭浏览器driver.q...

2019-06-19 21:56:52 309

原创 selenium By八种方式定位元素

BY方式定位使用selenium的By方式定位,首先得导入该模块from selenium.webdriver.common.by import Byid属性定位find_element(By.ID,"id")name属性定位find_element(By.NAME,"name")classname属性定位find_element(By.CLASS_NAME,"claname")...

2019-06-19 21:28:30 9068

原创 xpath定位与css定位扩展

xpth定位xpth绝对路径定位,定位div/div/下面的input元素find_element_by_xpath("/div/div/input")相对路径定位#定位input标签下面的name元素find_element_by_xpath("//input[@name="name"]")#定位div下面的input/tc元素,相对路径定位如果子元素没有没有可标识的属性。可以层级...

2019-06-19 21:03:59 326

原创 selenium八种定位方式

from selenium import webdriver #import 浏览器驱动driver = webdriver.Firefox() #指定浏览器url = “www.baidu.com” #访问的网址driver.get(url) #打开网址#id定位方式,页面元素有id属性尽量用id定位,因为id是唯一的driver.find_element_by_id...

2019-06-18 22:38:22 122

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除