自动化测试框架探索

现有的测试框架:java+selenium+testng,基于UI实现回归测试自动化
selenium:进行页面元素交互
testng:组织用例
xml文件,properties文件:存储数据配置。系统的配置文件放在properties文件中,测试脚本中数据放在xml文件中。
数据读取
  • 解析xml文件:JAXP(java api for xml parsing)
JAXP接口包括三个包:
1.org.w3c.dom
2.org.xml.sax
3.javax.xml.parsers
具体实现:
1.获取解析器工厂 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
2.获取具体解析器 DocumentBuilder db = dbf.newDocumentBuilder();
3.获取xml对象 Document document = db.parse("a.xml");
4.解析xml 
Element root = doc.getDocumentElement();
NodeList books = root.getChildNodes();
Node book = books.items[0];
String name  = book.getNodeValue();
for(Node node)
  • 读写properties文件,使用Properties(extends Hashtable)类,存储键值对。使用Properties读写文件:
1.读文件load(InputStream)
2.写文件save(OutputStream)
Properties prop = new Properties();
FileInputStream fis = new FileInputStream('b.properties');
prop.load(fis);
String value = prop.getProperty(key);
框架组织
  • com.xxx.test.extension:数据收集,结果转换成报告
  • com.xxx.test.tools:测试脚本中使用的工具类
  • com.xxx.test.ui:在页面层对webdriver的API进行二次封装
  • com.xxx.test.data:读取xml中的数据,用例中会使用到的数据的配置(枚举类型)
  • com.xxx.test.config:读取配置信息

脚本运行

  • 单个执行
  • 配置testng.xml
  • 本地配置xml,编写脚本,批量运行

代码管理

  • maven


主要问题

  • 脚本中大部分数据采用硬编码的方式,不灵活
  • 对于业务流程未封装,代码的重复太多,维护代价大

优化方案

  • 将测试数据放在单独的文件中,脚本只存放控制信息
  • 封装业务逻辑层

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要搭建一个商城自动化测试框架,你可以使用Python中的一些自动化测试框架库,如Selenium和unittest等。下面是一个基本的示例代码: ```python import unittest from selenium import webdriver class MyTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() # 使用Chrome浏览器驱动 self.driver.implicitly_wait(10) # 隐式等待,最多等待10秒 def test_login(self): self.driver.get("https://example.com") # 打开商城网站 # 执行登录操作 # 断言登录成功页面是否显示正确的信息 def test_search_product(self): self.driver.get("https://example.com") # 打开商城网站 # 执行商品搜索操作 # 断言搜索结果是否符合预期 def tearDown(self): self.driver.quit() # 关闭浏览器 if __name__ == '__main__': unittest.main() ``` 上述示例中,我们使用了Selenium库来进行网页自动化操作。在测试类`MyTest`中,我们定义了两个测试方法`test_login`和`test_search_product`,分别用于测试登录和商品搜索功能。在每个测试方法中,你可以编写具体的测试代码,并使用断言来验证预期结果与实际结果是否一致。 在`setUp`方法中,我们进行了一些初始化操作,如创建浏览器驱动对象和设置隐式等待时间。在`tearDown`方法中,我们进行了一些清理操作,如关闭浏览器。 你可以根据实际需求,在测试类中添加更多的测试方法和断言。使用这种方式,你可以搭建一个简单的商城自动化测试框架来组织和运行你的测试代码。同时,你还可以探索其他自动化测试框架库,以便根据你的需求选择最适合的框架

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值