自动化测试过程中遇到的问题

单例

在我们模拟一个访问浏览器的操作时,可能会一条Case打开一次,如果多条Case就会启动多个浏览器页面,这个时候可能会产生压力对我们的服务器,所以我们可以去通过单例模式解决这个问题。
单例模式是用来修饰类下的变量,python单例模式:只生成一次driver 保证只保留一个浏览器。单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。
自动化测试过程中遇到的问题

Iframe 如何处理?

先找网页中是否存在多个iframe的情况,定位到需要操作的iframe,找父类控件下的所有iframe,根据其他属性值(name,id)确定(遍历判断)唯一的iframe
用switch_ to.window( frame) 找到指定的页面
自动化测试过程中遇到的问题
自动化测试过程中遇到的问题

Handle的切换,句柄切换

第一种方法:
自动化测试过程中遇到的问题
自动化测试过程中遇到的问题
第二种方法就比较简单了,因为我们进行页面跳转时,会默认打开最新的一个页面,所以还可以通过索引去进行定位。
自动化测试过程中遇到的问题

鼠标键盘操作

自动化测试过程中遇到的问题
自动化测试过程中遇到的问题

unittest设计

import unittest
class testOne(unittest.TestCase):
#1、用例必须以test开头
#2、用例的执行顺序 string(ASCII)\数字大小排序
def add(self,a,b):
return a+b
def test_add(self):
self.assertAlmostEqual(self.add(3,4),7)
print(‘add’)
def test_name(self):
print(‘name’)
self.assertAlmostEqual(’’,’’)
def test_age(self):
print(‘age’)
def test_login(self):
import time
from selenium import webdriver
driver = webdriver.Chrome()
url = ‘https://www.baidu.com/’
driver.get(url)
driver.find_element_by_id(‘kw’).clear()
driver.find_element_by_id(‘kw’).send_keys(‘学院’)
driver.find_element_by_id(‘su’).click()
time.sleep(3)
driver.quit()
print(‘搜索完成’)
class testTwo(unittest.TestCase):
def test_baidu(self):
print(‘baidu’)
def test_taobao(self):
print(‘taobao’)
if name == ‘main’:
print(‘调用’)
# unittest.main()
#第一种框架
#1.构建实例
suite = unittest.TestSuite()
#2.添加用例
suite.addTest(testOne(‘test_add’))
suite.addTest(testTwo(‘test_baidu’))
#3.构建runner
runner = unittest.TextTestRunner()
#4.执行用例
runner.run(suite)
#第二种框架
suite1=unittest.TestLoader().loadTestsFromTestCase(testOne)
suite2=unittest.TestLoader().loadTestsFromTestCase(testTwo)
suite=unittest.TestSuite([suite1,suite2])
unittest.TextTestRunner().run(suite)

今日份分享到此结束,谢谢!