当前位置: 首页 > news >正文

超越时空网上书城网站建设方案研发网站建设报价

超越时空网上书城网站建设方案,研发网站建设报价,营销活动网站,育贤网站建设软件测试专栏 感兴趣可看#xff1a;软件测试专栏 自动化测试学习部分源码 python自动化测试相关知识#xff1a; 【如何学习Python自动化测试】—— 自动化测试环境搭建 【如何学习python自动化测试】—— 浏览器驱动的安装 以及 如何更…软件测试专栏 感兴趣可看软件测试专栏                      自动化测试学习部分源码 python自动化测试相关知识        【如何学习Python自动化测试】—— 自动化测试环境搭建        【如何学习python自动化测试】—— 浏览器驱动的安装 以及 如何更新driver        【如何学习Python自动化测试】—— 页面元素定位        【如何学习Python自动化测试】—— 时间等待        【如何学习Python自动化测试】—— 浏览器操作        【如何学习Python自动化测试】—— 鼠标键盘操作        【如何学习Python自动化测试】—— 多层窗口定位        【如何学习Python自动化测试】—— 警告框处理        【如何学习Python自动化测试】—— Cookie 处理        【如何学习Python自动化测试】—— expected_conditions        【如何学习Python自动化测试】—— Python 的 unittest 框架        【如何学习Python自动化测试】—— HTMLTestRunner 生成测试报告 单元测试框架 软件测试专栏实战相关知识1.unittest框架2.Pytest测试框架 实战内容1.“百度翻译”的页面UI测试1利用unittest框架完成2利用Pytest框架完成 2.“新浪微博”的两个页面UI测试1利用unittest框架完成2利用Pytest框架完成 操作异常问题与解决方案总结附录 实战相关知识 1.unittest框架 unittest框架是Python语言内置的单元测试框架Python编写的Web UI自动化测试脚本可以借助该框架来组织和执行。 1UnitTest组成部分 TestFixture测试固件测试用例的准备和销毁。 TestCase测试用例一个TestCase的实例就是一个测试用例。 TestSuite测试套件将多个测试用例集合在一起就是一个TestSuite。 TestRunner测试运行器使用TextTestRunner提供的 run( )方法执行测试用例。 2使用UnitTest测试框架注意 首先需要导入unittest包import unittest。导入包的语句和定义测试类中间要隔两个空行。新建测试类的名称建议每个单词的首字母大写编写顺序建议保持团队一致。测试类必须继承unittest.TestCase接下来可以编写setUp,setUp方法不是必须需要的。接下来可以编写测试用例测试用例名称以”test_”开头。        self.assertXXX是UnitTest提供的断言方法用例写完就可以编写tearDowntearDown也不是必须要有。       tearDown写完后空两行就可以使用unittest.main()进行测试了。 3用HTMLTestRunner模块生成可视化测试报告。 2.Pytest测试框架 Pytest测试框架在当今自动化测试中更受欢迎是一个非常流行且成熟的全功能的Python测试框架适用于单元测试、UI测试、接口测试。 1Pytest规则 文件命名默认以“test_”开头或者以”_test”结尾。 测试类class命名默认以“Test”开头 测试方法函数命名默认以“test_”开头 断言直接使用Python语言的断言assert 2Pytest测试固件 如果测试文件中没有定义class而是直接定义的函数那么使用setup_module、teardown_module 和 setup_function、teardown_function如果测试文件中定义了class就使用setup_class、teardown_class 和 setup_method、teardown_method不管是否定义class都可以使用setup、teardown来实现在每个方法或函数的前后执行。建议在一个项目中约定好是定义class来组织测试用例还是直接定义函数来组织用例。 3测试用例       Pytest和unittest的框架风格基本一致但有几点要注意 注意函数或方法名以“test_”开头直接通过函数定义测试用例的话def后面的括号中没有self通过class中的方法定义测试用例的话def后面的括号中有self。断言用的是Python的断言方式。 4用第三方插件完成测试报告的生成。 实战内容 1.“百度翻译”的页面UI测试 将“百度翻译”的页面UI测试至少包含翻译功能这个测试用例的自动化测试线性脚本分别用unittest和Pytest框架完成并生成测试报告。 1利用unittest框架完成 首先需要导入包 新建测试类的名称测试类必须继承unittest.TestCase 编写setUp 编写测试用例测试用例名称以”test_”开头。 用例1:输入的文字与语言不一致 使用assertTRUE断言方法断言网页会输出与输入文字匹配的语言如下图 用例2:输入的文字与语言一致 使用assertEqual断言方法断言输出文本框结果与预期结果一致如下图 用例写完编写tearDown tearDown写完后空两行使用unittest.main()进行测试 用第三方插件完成测试报告的生成 将HTMLTestRunner.py和run.py以及__init__.py文件放置与脚本文件同级目录下如下图 编写run.py文件 运行run.py文件 运行结果如下 出现如上结果说明两个测试用例通过 测试报告如下 2利用Pytest框架完成 首先需要导入包 新建测试类的名称默认以“Test”开头 编写setUp 编写测试用例测试用例名称以”test_”开头。 用例1:输入的文字与语言不一致 使用Python语言的断言assert断言网页会输出与输入文字匹配的语言 用例2:输入的文字与语言一致 使用Python语言的断言assert断言输出文本框结果与预期结果一致 用例写完编写teardown 全局设置 创建一个配置文件pytest.ini 该文件要和需要执行的测试文件所在的目录文件在同一级 如下图所示 pytest.ini内容如下 通过addopts来设置命令行参数-v 监控、失败重试的次数、重试的时间间隔、按标签来执行、生成测试报告多个参数之间用空格分隔 接着在py文件teardown后两行使用pytest.main()进行测试 运行结果如下 出现passed说明两个测试用例通过 测试报告如下 2.“新浪微博”的两个页面UI测试 将“新浪微博”的两个页面UI测试至少包含登录账号、发文字微博两个测试用例的自动化测试线性脚本分别用unittest和Pytest框架完成并生成测试报告。 1利用unittest框架完成 首先需要导入包 新建测试类的名称测试类必须继承unittest.TestCase 编写setUp因为用例二需要登录才能进行测试所以登录需要写进setUp 编写测试用例测试用例名称以”test_”开头。 用例1:登录账号这里仅测试是否通过 使用assertIn断言方法断言用户名‘111Nuyoah111’会出现在网页中 用例2:发布微博文字 使用assertIn断言方法断言发布内容成功如下图 用例写完编写tearDown tearDown写完后空两行使用unittest.main()进行测试 用第三方插件完成测试报告的生成 将HTMLTestRunner.py和run.py以及__init__.py文件放置与脚本文件同级目录下如下图 编写run.py文件 运行run.py文件 运行结果如下 出现如上结果说明两个测试用例通过 测试报告如下 2利用Pytest框架完成 首先需要导入包 新建测试类的名称默认以“Test”开头 编写setUp 编写测试用例测试用例名称以”test_”开头。 用例1:登录账号这里仅测试是否通过 使用assertIn断言方法断言用户名‘xxx’会出现在网页中 用例2:发布微博文字 使用assertIn断言方法断言发布内容成功 用例写完编写teardown 全局设置 创建一个配置文件pytest.ini 该文件要和需要执行的测试文件所在的目录文件在同一级 如下图所示 pytest.ini内容如下 通过addopts来设置命令行参数-v 监控、失败重试的次数、重试的时间间隔、按标签来执行多个参数之间用空格分隔 运行生成测试报告在py文件teardown后两行使用pytest.main()进行测试 运行结果如下 出现passed说明两个测试用例通过 测试报告如下 操作异常问题与解决方案 问题1pytest框架脚本运行失败 解决方法通过查询发现是pytest环境问题所以将pytest及相关插件卸载后在全局目录下重新下载 问题2allure在成功使用后再次使用会自动跳过测试用例 解决方法allure环境不稳定更换测试报告方法使用pytest-html完成测试报告 问题3微博无法使用账号密码登录测试用例无法完成登录的试错 解决方法修改代码直接在setup固件进行手动登录最后加入一个登录的测试用例进行断言 总结 Unittest和Pytest是Python中常用的两个测试框架用于编写和执行单元测试。 Unittest是Python的内置测试框架之一可以通过导入unittest模块来使用。Unittest提供了一组用于编写测试用例的类和方法测试用例是通过继承unittest.TestCase类来创建的。测试方法以test_开头并且可以使用断言方法如assertEqual()、assertTrue()等来验证预期行为。Unittest提供了丰富的功能和工具如测试套件、测试装置setUp()和tearDown()方法、测试发现等。可以使用命令行工具或集成开发环境IDE来运行Unittest测试。 Pytest是一个第三方的Python测试框架可以通过安装pytest库来使用。Pytest提供了更简洁、灵活和可扩展的方式来编写测试用例。不需要继承特定的基类可以使用普通的函数定义测试用例用assert语句来断言结果。Pytest具有丰富的插件生态系统和许多附加功能例如自动发现测试文件、参数化测试、夹具fixtures等。Pytest支持使用命令行工具来运行测试并提供了丰富的输出和报告选项。 unitest和pytest的区别是语法风格Unittest使用类和方法的方式来组织测试用例而Pytest使用函数定义测试用例。灵活性Pytest提供了更灵活和简洁的语法没有像Unittest那样的约束。Pytest的编写方式更为简单减少了样板代码的编写。插件生态系统Pytest具有丰富的插件生态系统提供了许多附加功能和扩展选项而Unittest相对较少。自动发现测试Pytest具有自动发现测试文件和用例的功能而Unittest需要手动设置测试套件和加载用例。夹具支持Pytest提供了强大的夹具fixtures机制用于管理测试数据和环境设置。Unittest也支持夹具但Pytest的夹具功能更为灵活和强大。 总体而言Pytest相对于Unittest提供了更简洁、灵活且功能更丰富的测试框架能够简化测试代码的编写和维护并提供更好的测试发现和报告功能。当然选择使用哪个框架取决于个人偏好和项目需求。 附录 部分源码与上面截图有所不同仅供参考 Baidu unittest from selenium import webdriver import unittest from time import sleep from selenium.webdriver.common.by import Byclass TestBaidu(unittest.TestCase):def setUp(self):self.driver webdriver.Chrome()self.driver.maximize_window()self.driver.implicitly_wait(20)# 访问登录页self.driver.get(https://fanyi.baidu.com/)# 移除广告弹窗self.driver.find_element(By.CLASS_NAME,app-guide-close).click()def test_001(self):# 用例一输入的文字与选择的语言不一致# 选择语言阿拉伯语language self.driver.find_element(By.CLASS_NAME,select-from-language)language.click()language_textself.driver.find_element(By.XPATH,//*[idlang-panel-container]/div/div[5]/div[1]/div[1]/div/span[1])language_text.click()#输入翻译文本英语intext self.driver.find_element(By.CLASS_NAME,textarea)intext.send_keys(love)sleep(2)# 输入不匹配文字后的提示信息self.assertTrue(self.driver.find_element(By.LINK_TEXT,英语))def test_002(self):# # 用例二输入的文字与选择的语言一致# 选择语言英语language self.driver.find_element(By.CLASS_NAME, select-from-language)language.click()language_text self.driver.find_element(By.XPATH,//*[idlang-panel-container]/div/div[5]/div[1]/div[21]/div/span[1])language_text.click()# 输入翻译文本英语intext self.driver.find_element(By.CLASS_NAME, textarea)intext.send_keys(love)sleep(2)# 输入不匹配文字后的提示信息outtext self.driver.find_element(By.CLASS_NAME, output-bd).textself.assertEqual(outtext,爱)def tearDown(self):self.driver.quit()if __name__ __main__:unittest.main()Baidu pytest from time import sleepimport pytest from selenium import webdriver from selenium.webdriver.common.by import Byclass TestBaidu():def setup(self):self.driver webdriver.Chrome()self.driver.maximize_window()self.driver.implicitly_wait(20)# 访问登录页self.driver.get(https://fanyi.baidu.com/)# 移除广告弹窗self.driver.find_element(By.CLASS_NAME,app-guide-close).click()pytest.mark.L1def test_001(self):# 用例一输入的文字与选择的语言不一致# 选择语言阿拉伯语language self.driver.find_element(By.CLASS_NAME,select-from-language)language.click()language_textself.driver.find_element(By.XPATH,//*[idlang-panel-container]/div/div[5]/div[1]/div[1]/div/span[1])language_text.click()#输入翻译文本英语intext self.driver.find_element(By.CLASS_NAME,textarea)intext.send_keys(love)sleep(2)# 输入不匹配文字后的提示信息assert 英语 self.driver.find_element(By.LINK_TEXT,英语).textpytest.mark.L2def test_002(self):# # 用例二输入的文字与选择的语言一致# 选择语言英语language self.driver.find_element(By.CLASS_NAME, select-from-language)language.click()language_text self.driver.find_element(By.XPATH,//*[idlang-panel-container]/div/div[5]/div[1]/div[21]/div/span[1])language_text.click()# 输入翻译文本英语intext self.driver.find_element(By.CLASS_NAME, textarea)intext.send_keys(love)sleep(2)# 输入不匹配文字后的提示信息outtext self.driver.find_element(By.CLASS_NAME, output-bd).textassert outtext爱def teardown(self):self.driver.quit()if __name__ __main__:pytest.main([-s, ./test_baidu.py])Weibo unittest from selenium import webdriver import time,unittest # 通过时间戳构造唯一project name from selenium.webdriver.common.by import Byproject_name project_{}.format(time.time())class TestNewProject(unittest.TestCase):def setUp(self):self.driver webdriver.Chrome()self.driver.maximize_window()self.driver.implicitly_wait(20)# 登录self.driver.get(https://weibo.com)self.driver.find_element(By.CLASS_NAME, LoginCard_btn_Jp_u1).click()time.sleep(8) # 手动扫码登录def test_new_project(self):# 测试搜索框输入框self.driver.find_element(By.CLASS_NAME,Form_input_2gtXx).send_keys(123)time.sleep(1)self.driver.find_element(By.CLASS_NAME,Visible_angle_MP2Km).click()time.sleep(1)self.driver.find_element(By.XPATH,//*[idhomeWrap]/div[1]/div/div[4]/div/div[3]/div/div/div[4]).click()# 测试发布self.driver.find_element(By.CLASS_NAME,Tool_btn_2Eane).click()time.sleep(1)self.assertIn(123, self.driver.page_source)def tearDown(self):self.driver.quit()if __name__ __main__:unittest.main()Weibo pytest import time import pytest from selenium import webdriver from selenium.webdriver.common.by import Byclass TestWeibo ():def setup(self):self.driver webdriver.Chrome()self.driver.maximize_window()self.driver.implicitly_wait(20)# 登录self.driver.get(https://weibo.com)self.driver.find_element(By.CLASS_NAME, LoginCard_btn_Jp_u1).click()time.sleep(8) # 手动扫码登录pytest.mark.L1def test_new_project(self):assert xxx in self.driver.page_source#此处自行修改“xxx”# 测试搜索框输入框self.driver.find_element(By.CLASS_NAME,Form_input_2gtXx).send_keys(123)time.sleep(1)self.driver.find_element(By.CLASS_NAME,Visible_angle_MP2Km).click()time.sleep(1)self.driver.find_element(By.XPATH,//*[idhomeWrap]/div[1]/div/div[4]/div/div[3]/div/div/div[4]).click()# 测试发布self.driver.find_element(By.CLASS_NAME,Tool_btn_2Eane).click()time.sleep(1)assert 123 in self.driver.page_sourcedef teardown(self):self.driver.quit()if __name__ __main__:pytest.main([-s, test_weibo.py, --html./report.html])
http://www.sadfv.cn/news/371891/

相关文章:

  • 柳州商城网站开发全站仪为什么要建站
  • 网站搭建合同范本中国机床网
  • 汕尾东莞网站建设上海旅游景点
  • 被网站管理员设置拦截国内新闻最近新闻今天
  • 做纸贸易的好网站html5国外酷炫网站
  • 校园微网站建设方案ppt模板手机网站与电脑网站兼容
  • 桂林卖手机网站龙游发布紧急提示
  • 苏州官方网站建站车票制作图片的软件
  • 网站建设gong软件培训方案
  • 河南电商网站设计优化大师官方正版下载
  • 绵阳集团网站建设企业做网站的注意什么问题
  • 如何选择建网站公司做网页设计的步骤
  • 企业做pc网站需要什么资料优秀软文范例100字
  • 营销型企业网站的类型建立公司网站视频
  • 网站开发培训达内电商设计属于什么专业
  • 大帮手网站建设wordpress翻頁
  • 昆山苏州网站建设新手如何做代理商
  • 网站托管服务商查询怎么自己免费制作app
  • 湖州做网站优化wordpress图标不显示
  • 汽车网站建设的基本功能企业装修展厅公司
  • 学做家常菜去那个网站wordpress网站上传
  • 网站建设用户调查问卷常德规划建设局网站
  • 北京网站制作建设廉江手机网站建设
  • 北京的网站制作新东方在线教育平台官网
  • 一个公司可以备案两个网站免费主机空间免备案
  • 靖江建设局网站青提wifi小程序开发教程
  • 网站建设合同 简单微信开发者工具app
  • 浩森宇特北京网站建设展馆设计效果图图片
  • 小米的网站是哪个公司做的大气腐蚀网站建设
  • 英文外贸网站 php源码中国建设银行官网版本