web浏览器自动化框架
LuluTest的Python项目详细描述
露露试验
LuluTest是一个使用Python和Selenium的开源浏览器自动化框架。 它相对轻量级,因为它主要为第三方库方法提供了包装器,使浏览器自动化和测试更加直观。 LuluTest的最终目标是通过抽象出固有的复杂性和特性,让人们快速编写健壮的自动浏览器脚本
特别感谢
下面的Github用户在某种程度上为LuluTest做出了贡献,我非常感谢他们的时间、努力和技能。在
@旺戈尼亚
@本吉夫斯
@阿尔温内德
@ddrm86
@MarioHdpz公司
@法里亚姆
@carolinamotive公司
基本用途
LuluTest旨在支持白盒和黑盒测试。功能 只要运行脚本的机器可以访问页面,提供的就可以工作 正在测试中。在
创建测试的基本工作流程如下:
- 使用要测试的页面的URL创建一个
Page
对象。在 - 创建一个将与元素交互的
Action
对象 - 为要测试的页面上的每个元素创建一个
Element
对象 go
到要测试的页面- 创建要在页面上执行的操作的
Steps
对象 Do
Steps
- 做你的断言
示例用法
下面是一个示例测试用例:
importunittestfromLuluTest.lulu_exceptionsimportPageNotLoadedErrorfromLuluTest.pageimportPagefromLuluTest.elementimportPageElementfromLuluTest.actionimportActionfromstepimportStep,Do,DoStep,StepsclassExampleTest(unittest.TestCase):deftest_write_and_click(self):page=Page('http://erikwhiting.com/newsOutlet')actions=Action()page.elements=[PageElement(("id","sourceNews"),"input box"),PageElement(("id","transmitter"),"button"),PageElement(("id","en1"),"english div")]actions.go(page)actions.input_text(page.get_element("input box"),"Hello")actions.click(page.get_element("button"))english_div=page.get_element("english div")english_text=actions.check_element_text(english_div,"Hello")self.assertTrue(english_text)actions.close()
或者,也可以通过YAML或JSON构建页面并导入
它们是供使用的。例如,上面的页面可以在newso_outlet.yml
中建模
像这样:
将此文件导入测试脚本以避免编写元素查找代码:
# In a setup method:base_path=os.getcwd()prebuilt_pages_directory=base_path+'/fixtures/pages/'page_configs=[prebuilt_pages_directory+'news_outlet.yml',prebuilt_pages_directory+'other_page.yml',prebuilt_pages_directory+'even_another_page.json',]pages=page_factory.generate_pages(page_configs)# Now all subsequent tests have access to this page objectdeftest_basic_usage(self):page=self.pages['news_outlet']actions=Action()actions.go(page)actions.input_text(page.get_element("input_box"),"Hello")actions.click(page.get_element("button"))english_div=page.get_element("english_div")english_text=actions.check_element_text(english_div,"Hello")self.assertTrue(english_text)actions.close()
特点
LuluTest的开发有两种主要的设计理念:
- 在
隐藏浏览器自动化固有的乏味和特性 从测试脚本本身,允许测试人员高效地编写 更快速地进行健壮的测试
在 - 在
尽可能简化测试编写过程,这样就不需要技术性了 用户可以提供基本测试用例,同时释放技术 用户关注更复杂的技术问题。在
在
这些哲学主要是通过保持有时缓慢的 考虑web元素的响应时间。该项目旨在避免 尽可能多的等待和睡眠。在
LuluTest建筑
2019年12月至2020年1月,LuluTest建筑 用更好的原则重新设计并以所描述的方式实现 在下面的图片中。如果有贡献,请尽你所能坚持 预定的建筑。在
今后的工作
LuluTest的最终目标是增强领域特定语言来提供帮助 促进业务和技术利益相关者之间关于 要求和测试。在
投稿指南
设置指南
要设置本地环境以帮助测试,请转到Set-Up Guide
- 项目
标签: