1.测试脚本与数据解耦(数据驱动) 让操作相同但是数据不同的测试可以通过同一 套自动化测试脚本来实现,只是在每次测试执行时提供不同的测试输入数据. 2.页面对象模型(POM) 以页面为单位来封装页面上的控件以及控件的部分操作.而测试用例使 用页面对象来完成具体的界面操作. 3.业务流程抽象 基于操作函数的更接近于实际业务的更高层次的抽象方式.基于业务流程抽象实现的 测试用例往往具有较好的灵活性,可以根据实际测试需求方便地组装出各种测试用例.业务流程的核心思想是,从业务的维度来指导测试业务流程的封…
查询速度慢的原因很多,常见如下几种 : .没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) .I/O吞吐量小,形成了瓶颈效应. .没有创建计算列导致查询不优化. .内存不足 .网络速度慢 .查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) .锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) .sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. .返回了不必要的行和列 .查询语句不好,没有优化 解决方法汇总如下:…
1. idea内存优化 找到idea安装目录,我的是在D:\IDEA\bin目录中 找到idea.exe.vmoptions和idea64.exe.vmoptions文件 这两个文件全部改成如下配置, 下面参数根据自己内存大小设置                                                                                                      -Xms512m -Xmx1024m -XX:ReservedCo…
执行JS脚本方法封装: class JavaScript(Base): def execute_javascript(self, js): """执行 JavaScript""" self.logger.info(f"执行 JavaScript:\n{js}") return self.driver.execute_script(js) def execute_async_javascript(self, js): "…
在使用web自动化测试中,用例失败则自动截图的网上也有,但实际能落地的却没看到,现总结在在实际应用中失败截图的几种方法: 一.使用unittest框架截图方法:   1.在tearDown中写入截图的功能,如下: import sysclass SeleniumTest(unittest2.TestCase): ... def tearDown(self): if sys.exc_info()[0]: test_method_name = self._testMethodName self.dr…
在自动化测试中经常会遇到使用selenium方法定位元素点击操作失败的情况,例如,我们想实现在浏览器输入http://www.baidu.com,进入百度首页后,鼠标悬停在“更多产品”上,点击“全部产品” 若不使用js的话,代码应该如下图所示: 我们执行代码后,发现会报错 我们该如何解决这个问题呢,那就要用到这篇文章的主角js了,将代码修改为如下内容,执行代码,发现页面正常跳转了 我们在编写自动化测试用例的过程中,有时会遇到某个元素的长宽设置的比较大,将我们想要点击的元素遮挡住了,该怎么办?我们…
关于ListView中按钮监听的优化问题(方法一)地址: http://www.cnblogs.com/steffen/p/3951901.html 之前的方法一,虽然能够解决position的传递,但是我们一般在监听事件中会经常用到Context和存储数据的集合ArrayList,若每次都要将这么多的数据传递给Button的话,那个Button的数据量必然会增大. 因此,参考方法一我们可以将Button的监听事件写成Adapter的内部中,方便我们调用Adapter中的所有数据.废话不多说,直…
Python+selenium自动化测试中Windows窗口跳转方法 #第一种方法 #获得当前窗口 nowhandle=driver.current_window_handle #打开弹窗 driver.find_element_by_name("xxx").click() #获得所有窗口 allhandles=driver.window_handles for handle in allhandles: #比较当前窗口是不是原先的窗口 if handle!=nowhandle: #获…
浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有nul…
背景简介 在软件开发领域,持续集成和部署对于软件测试自动化提出了越来越高的要求,基于 Eclipse 应用在这一需求中仍然占据重要的组成部分.目前主流的测试自动化工具主要以录制回放的功能为主,辅助以脚本的方式实现.然而,基于此的测试方法往往具有测试用例维护复杂,测试过程容易失败的问题,这直接影响了测试效率.SWTBot 作为 Eclipse 官网推荐的自动化测试工具,提供了专业的类库以及扩展点,在 Eclipse 应用的自动化测试中具有先天的优势. SWTBot 是基于 Eclipse SWT…