摘要: 1.线程等待(强制等待)如time.sleep(2):线程强制休眠2秒钟,2秒过后,再执行后续的代码。建议少用。2. imlicitlyWait(隐式等待)会在指定的时间范围内不断的查找元素,直到找到元素或超时,特点是必须等待整个页面加载完成。3. WebDriverWait(显式等待)通常是我们自 阅读全文
posted @ 2022-02-09 18:04 书院小先生 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 深拷贝是将对象本身复制给另一个对象。这意味着如果对对象的副本进行更改时不会影响原对象。在 Python 中,我们使用 deepcopy()函数进行深拷贝,深拷贝的话,是深层拷贝,拷贝的是对象本身,也就是说会存在两个对象【1,2,3】深拷贝的目的是需要改变原始对象中的数据,但是又要保留原来的那一份所以 阅读全文
posted @ 2022-02-09 18:03 书院小先生 阅读(431) 评论(0) 推荐(0) 编辑
摘要: PO是Page Object模式的简称,它是一种设计思想,意思是,把一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,PO模式一般使用三层架构,分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。 阅读全文
posted @ 2022-02-09 18:03 书院小先生 阅读(616) 评论(0) 推荐(0) 编辑
摘要: Python中的魔法方法是指可以给我们的类增加魔力的特殊方法。如果对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被调用。它们经常是双下划线包围来命名的(比如:__init__)。__new__:用来创建一个雷的实例(constructor)。__init__:用来初始化一个实例 阅读全文
posted @ 2022-02-09 18:02 书院小先生 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 1.首先通过封装find方法,实现wait_for_element_ispresent(WebDriverWait)2.在对页面进行click之前,先滚动到该元素(通过Js封装),避免在页面未加载完成前或是在下拉之后才能显示。3.不同方式进行定位,与expected_conditions判断方法封装 阅读全文
posted @ 2022-02-09 18:01 书院小先生 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 多线程类似于同时执行多个不同程序;Python中使用线程有两种方式:函数或者用类来包装线程对象。函数式:调用thread模块中的start_new_thread()函数来产生新线程,语法: thread.start_new_thread ( function, args[, kwargs] ),其中 阅读全文
posted @ 2022-02-09 18:01 书院小先生 阅读(1926) 评论(0) 推荐(0) 编辑
摘要: 1.在经常检测失败的元素前尽量加上显式等待时间,等要操作的元素出现之后再执行下面的操作;2.多线程的时候,减少测试用例耦合度,因为多线程的执行顺序是不受控制的;3.多用 try 捕捉,处理异常;4.尽量使用测试专用环境,避免其他类型的测试同时进行,对数据造成干扰。 阅读全文
posted @ 2022-02-09 17:59 书院小先生 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 不会的。所以有的时候,当selenium并未加载完一个页面时再请求页面资源,则会误报不存在此元素。所以首先我们应该考虑判断,selenium是否加载完此页面。其次再通过函数查找该元素。 阅读全文
posted @ 2022-02-09 17:58 书院小先生 阅读(814) 评论(0) 推荐(0) 编辑
摘要: 先去找该元素不变的属性,要是都变,那就找不变的父元素,用层级定位(以不变应万变)属性动态变化也就是指该元素没有固定的属性值,可以通过:JS实现,通过相对位置来定位,比如xpath的轴,paren/following-sibling/percent-siblinghttp://www.cnblogs. 阅读全文
posted @ 2022-02-09 17:58 书院小先生 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 在selenium启动以后,driver充当了服务器的角色,跟client和浏览器通信,client根据webdriver协议发送请求给driver。driver解析请求,并在浏览器上执行相应的操作,并把执行结果返回给client. 阅读全文
posted @ 2022-02-09 17:57 书院小先生 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 可以使用下面的Selenium命令来检查:assertTrue(selenium.isElementPresent(locator)) 阅读全文
posted @ 2022-02-09 17:56 书院小先生 阅读(125) 评论(0) 推荐(0) 编辑
摘要: Selenium主要有三种验证点 -检查页面标题检查某些文字检查某些元素(文本框,下拉菜单,表等) 阅读全文
posted @ 2022-02-09 17:55 书院小先生 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 1)首先确定自己提出的bug确实是一个bug,符合评级等2)把自己的理由告诉开发人员,跟开发人员沟通到底是不是bug3)站在用户的角度跟开发进行沟通4)可以开会议,邀请项目经理、开发人员、测试人员进行会议商讨5)换位思考以开发人员的角度思考怎么能让开发人员认可我 阅读全文
posted @ 2022-02-09 17:54 书院小先生 阅读(1314) 评论(0) 推荐(0) 编辑
摘要: 1.使用非GUI模式执行测试,如 jmeter –n –t test.jmx –l test.jtl2.在加载期间,测试不使用“查看结果树”或“查看表中的结果”监听器,仅在脚本编写阶段使用它们3.不要使用功能模式4.与其使用大量相似的采样器,不如在循环中使用相同的采样器,并使用变量来改变采样 阅读全文
posted @ 2022-02-09 17:53 书院小先生 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 1.自动化测试用例是用来监控的。集成到jenkins,创建定时任务定时执行;2.有些用例在产品上线前必须回归。jenkins上将任务绑定到开发的build任务上,触发执行;3.有些用例不需要经常执行。jenkins创建一个任务,需要执行的时候人工构建即可。 阅读全文
posted @ 2022-02-09 17:53 书院小先生 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 1、id定位2、name定位3、class定位4、tag定位5、link标签定位6、partial link定位7、XPath定位8、CSS定位 阅读全文
posted @ 2022-02-09 17:53 书院小先生 阅读(169) 评论(0) 推荐(0) 编辑
摘要: Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典) Set(集合) 阅读全文
posted @ 2022-02-09 17:52 书院小先生 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 1. LIMIT 语句;分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。2. 隐式转换;SQL语句中查询变量和字段定义类型不匹配是另一个常见的错误。3.关联更新、删除;虽然MySQL5.6引入了物化特性,但需要特别注意它目前仅仅针对查询语句的优化4.混合排序;MySQL不能利用索引进行混 阅读全文
posted @ 2022-02-09 17:52 书院小先生 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 1.STRING:是redis中最基本的数据类型,redis中的STRING类型是二进制安全的,即它可以包含任何数据,比如一个序列化的对象甚至一个jpg图片,要注意的是redis中的字符串大小上限是512M。 2.LIST:IST是一个简单的字符串列表,按照插入顺序进行排序,我们可以从LIST的头部 阅读全文
posted @ 2022-02-09 17:51 书院小先生 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 1.吞吐量:每秒钟系统能够处理的请求数、任务数;2.响应时间:服务处理一个请求或一个任务的耗时;3.服务器资源占用:服务器资源占是指在负载情况下,系统的资源利用率。资源占用越低,说明系统越优秀从服务器的角度看,性能测试主要关注CPU、内存、服务器负载、网络、磁盘IO等。 阅读全文
posted @ 2022-02-09 17:50 书院小先生 阅读(1234) 评论(0) 推荐(0) 编辑