diascover方法,加载所有测试用例 1.discover方法里面有三个参数: -case_dir:测试用例的目录 -pattern:这个是匹配脚本名称的规则,test*.py意思是匹配test开头的所有脚本. -top_level_dir:这个是顶层目录的名称,一般默认等于None就行了. 2.discover加载到的用例是一个list集合,需要重新写入到一个list对象testcase里,这样就可以用unittest里面的TextTestRunner这里类的run方法去执行. 实例:…
selenium 学习之路开始了,一遍搬一遍理解学习,加油!!!…
把写好的测试用例放在指定目录下,使用discover函数扫描该目录,并根据关键字自动筛选需要执行的用例.本例使用Python3.6版本. # 遍历指定目录,批量执行测试用例 import unittest case_dir = 'D:\\test_case' def suites_run(): '''运行测试套件,批量执行测试用例''' # discover函数遍历指定目录,按条件过滤文件,返回测试套件列表 discover_suites = unittest.defaultTestLoader…
01实战之分离测试固件 在UI 自动化测试中,不管编写哪个模块的测试用例,都需要首先在测试类中编写测试固件初始化WebDriver类及打开浏览器,执行登录,才能进行下一步业务逻辑的操作,测试用例执行完成后还需要关闭浏览器,这部分的代码如下: import unittest from selenium import webdriver import time, os class InitTest(unittest.TestCase): @classmethod def setUpClass(cls…
工作中,使用python的requests库进行接口自动化测试是一个比较不错的选择,今天就以某网站的免费接口为例,展示以get请求进行批量执行测试用例.话不多说直接开讲 分析一下接口信息, 请求地址:http://apis.juhe.cn/simpleWeather/query, 请求参数:city和key,都是必传 请求方式:get或post,以下以get为例 返回结果:info,wid等 注意:该网站免费接口每天有请求次数限制,在调试的时候注意下不要超过规定次数,不然只能等到第二天才能使用了…
现有四个测试用例分别在两个.py文件中,如何执行这些文件? unittest中有这样处理:unittest.TestLoader().discover() 第一个文件test_case1.py from selenium import webdriver import unittest class Baidu_Link(unittest.TestCase): def setUp(self) -> None: self.driver = webdriver.Chrome() self.driver…
如果多个测试用例在不同的类中,又需要一次性执行完所有的测试用例,则可以使用到Junit中的批量执行测试方法. 方法一 这种方式非常简单,不需要额外多写一行代码,Eclipse 本来就支持以项目或包为单位来批量执行测试用例.右键点击项目--->Run As--->Run Configurations. 点击“Search..”按钮. 选择工程/工程下的指定包.点击“OK”回到运行配置窗口,点击“Run”按钮运行所选中范围下的所有测试用例. 第二种 这种方法引入一种“测试套件”的概念,JUnit…
批量执行 在我们测试接口的时候,有时候希望执行所有的测试用例,前面讲的都是测试单个的接口,postman提供了我们批量执行接口的功能 点击Runner 然后我们点击run 执行完会统计出我们的结果,失败了一个,成功了三个,失败的原因是我们设置的断言是响应时间少于800ms,实际结果是1147ms 数据驱动 数据驱动就是数据的不同造成结果的不同,比如登录的接口,我们要测账号正确,密码为空,账号密码错误等等情况,那我们会想,可不可以把这些数据放到一个文件里面,然后让一个接口循环读取这个文件里的数据去…
思考:当存在多个脚本,每个脚本中有多条测试用例时,我们该如何批量执行呢?分析:首先创建2个测试用例脚本(.py文件),每个脚本有2条测试用例,然后批量执行全部测试用例 #Test_01.py # coding=utf-8 ''' Created on 2019-1-3 @author: 丹姐 Project:测试项目1 ''' import unittest class Test01(unittest.TestCase): @classmethod def setUpClass(cls,driv…
原文:https://blog.csdn.net/xu1916659422/article/details/77971867 接下来两节要探讨的是批量插入和批量更新,因为这两种操作在企业中也经常用到. mysql新增语句 insert into 表名(字段,字段...) values ( 值,值 ...):此种适合单条插入. 批量插入, 一种可以在代码中循环着执行上面的语句,但是这种效率太差,下面会有对比,看看它有多差. 另一种,可以用mysql支持的批量插入语句, insert into 表名…
os模块没有什么好说的,直接看实例就可以了 读取文件内容: open只能读文件的内容,不能读文件夹的内容 常用方法: 1. os.name——判断现在正在实用的平台,Windows 返回 ‘nt'; Linux 返回’posix' 2. os.getcwd()——得到当前工作的目录. 3. os.listdir()——指定所有目录下所有的文件和目录名. 4. os.remove()——删除指定文件 5. os.rmdir()——删除指定目录 6. os.mkdir()——创建目录 注意:这样只能…
HTML中,标签显示为select,有option下拉属性的为Select弹框 1.Xpath定位 Xpath语法,顺序是从1开始,编程语言中是0开始…
鼠标事件 from selenium.webdriver.common.action_chains import ActionChains contest_click()  右击 double_click()   双击 drag_and_drop(source,target)  拖动 move_to_element()  鼠标悬停 鼠标悬停为重点 perform()标示执行 鼠标拖放: drag_and_drop(source,target) source鼠标拖动的源元素 target鼠标释放的…
selenium的八种定位方式 1.通过id定位     find_element_by_id() send_keys() 输入框输入字符串 click()  鼠标点击事件 注:send_keys输入中文时,需要在前面添加“u” 表示把输入的中文转换成unicode国际编码 Text可以打印元素的文本信息 2.通过name定位 find_element_by_name() 3.通过class定位 find_element_by_class_name() Class中有空格是多重属性,取其中一个就…
selenium基础,首先就是浏览器的相关操作 下面描述几种浏览器的常用操作 1.打开浏览器 webdriver后面添加想要打开的浏览器 Ie或者Chrome 2.打开指定页面(百度) 3.休眠时间 这里的休眠时间,是以秒为单位,需要导入time包 4.点击浏览器左箭头,返回上一页 5.点击浏览器右箭头,切换下一页 6.刷新浏览器 7.退出浏览器 退出这里有两个方法,可以用close和quit. close是关闭当前窗口,不会清空临时文件 quit是关闭浏览器,清空临时文件.…
1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.txt')try:     all_the_text = file_object.read( )finally:     file_object.close( ) 注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法. 2.读文件 读文…
一.三种等待方式 1.sleep 加载time库.time.sleep() 休眠单位以秒为单位 2.implicitly_wait() 等待页面完全加载完成(左上角转圈结束) 参数为等待时间,等待页面加载时间,超出等待时间没有加载完,抛出异常 时间单位依旧为秒 3.WebDriverWait类 WebDriverWait(self,driver,timeout,poll_frequency=POLL_FREQUENCY,ignored_exceptions=None) driver = 浏览器打…
一.常见的几种异常: SyntaxError:语法错误 NameError:试图访问的变量名不存在 IndexError:索引错误,使用的索引不存在,超出序列范围 KeyError:使用了不存在的关键字 TypeError:类型错误 ValueError:值错误 AttributeError:属性错误 IOError:输入输出错误 NoSuchElementException:没有找到元素 NoSuchFrameException:没有找到iframe NoSuchWindowException…
通过set_window_size()方法可以设置打开的浏览器大小 maximize_window()方法可以把当前浏览器最大化 例子:…
打开帮助 —— 故障排除信息…
1. implicitly_wait()隐形等待.等待页面加载完成,作用是全局的. 时间可以设置的长,短时间也没有影响.直到设置的时间耗完 时间耗完也不会报错 2.获取title值 driver.title 3.获取元素属性值 t = driver.find_element_by_id("su").get_attribute("value") 4.判断元素是显示还是隐藏(返回布尔值) d = driver.find_element_by_id("su&qu…
CSS定位方式: 元素中间加“.”表示是class 1.通过ID定位 driver.find_element_by_css_selector("#ID值") 2.通过class定位 driver.find_element_by_css_selector(".s_ipt") 3.通过标签定位 driver.find_element_by_css_selector("input") 4.通过其他属性定位 不局限于所知属性,使用任何属性都可以定位 dr…
Alert弹窗 弹窗是用工具选不到的~ 切换到alert driver.switch_to_alert() 新的语法:driver.switch_to.alert 注:新的语法不需要后面加括号 打印alert上的文本内容 alert.text 点击确定 alert.accept() 点击取消 alert.dismiss() 输入内容 alert.send_keys() jquery定位 jquery = “$(‘.prefpanelgo’).click()” driver.execute_scr…
多窗口相关操作 获取当前句柄 c_handle = driver.current_window_handle 获取所有句柄 all_handle = driver.window_handles 切换到窗口 driver.switch_to_window(窗口句柄) 切换到第一个窗口 driver.switch_to_window() driver.switch_to.window() driver.title 打印title…
查看iframe: 1.top window ——可以直接进行定位…
使用HTMLTestRunner运行测试套件,自动生成html测试报告: import unittest, HTMLTestRunner, sendmail_html import time, os case_dir = 'D:\\pywork\\pyworkspace\\yzwx_selenium\\batch_case\\test_cases' t = time.strftime("%Y%m%d_%H%M%S", time.localtime()) html_name = 'D:\…
header: #ifndef SENDCANMSGTHREAD_H#define SENDCANMSGTHREAD_H #include <QThread>#include "can/canUtils.h"#include <QTime>#include <iostream> class SendCanMsgThread : public QThread{ Q_OBJECTpublic: SendCanMsgThread(); ~SendCanMs…
1.准备好测试用例及相关数据 2.点击Run按钮 3.选择运行collection或者folder 4.运行完成…
简介 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到 unittest 里面的 discover 方法来加载用例了.加载用例后,用 unittest 里面的 TextTestRunner 这里类的 run 方法去一次执行多个脚 本的用例.那么前边介绍那么多都是半道开始,半道出家,这篇就带大家从头到尾,一步一步给小伙伴们详细介绍一下. 新建测试项目 1.pycharm 左上角 File>New Projetc>Pure Python,在 locat…
初入python+selenium学习之路,总会遇到这样那样的问题.IndentationError: unexpected indent,这个坑我已经踏进数次了,索性记录下来.都知道Python对代码格式要求挺严格,这个message是在告诉你:你的格式有问题,要检查下tab和空格,可能是没对齐 解决过程: 根据错误位置提示,发现是这个函数除了问题,如下图: 红框圈出的缩进没有对齐,对齐之后就OK了 执行结果成功:  我踏过的,是不曾虚度的昨天,我去向的 ,永远是比今天更好的远方…