城乡与建设部网站做搜索引擎的网站有哪些

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

城乡与建设部网站,做搜索引擎的网站有哪些,网页制作的方法,wordpress恶意注册#x1f345; 点击文末小卡片 #xff0c;免费获取软件测试全套资料#xff0c;资料在手#xff0c;涨薪更快 一、什么是自动化测试 把人为驱动的测试行为转化为机器执行的一种过程称为自动化测试。(来自百度百科)本质上来说#xff0c;自动化测试对比起手工测试除了需要…  点击文末小卡片 免费获取软件测试全套资料资料在手涨薪更快 一、什么是自动化测试 把人为驱动的测试行为转化为机器执行的一种过程称为自动化测试。(来自百度百科)本质上来说自动化测试对比起手工测试除了需要写代码外并没有什么不同它们的不同在于在各自适合的场景不同从而使它们能够在它们的场合发挥更大的优势。 二、什么情况不需要自动化测试 ①需求变动频繁 ②项目周期短 ③自动化脚本一次性 等受时间(少)、技术(难度大)和重用性(低)因素影响的情况 三、自动化测试过程 上面说了很多概念性的东西现在我引入一个实例来说明自动化测试的过程。现在有一个场景我们需要测试一个网站的登录界面简书的登录页面。 首先需要写测试用例如果有需求文档再写测试用例更好这里的登录只做最简单的手机或邮箱、密码登录其他如记住我注册功能不测试 组合有两个 手机密码可以拓展成①手机已注册密码正确②手机已注册密码不正确③手机未注册密码在数据库内④手机未注册密码不在数据库内⑤手机号密码均为空⑥手机号为空⑦密码为空⑧手机号密码都不空。其中手机号密码全部空的情况前面四种情况都可以验证。 邮箱密码可以拓展的几个方面与上面相同。所以写成的手工测试用例如下图图片中所有数据均为虚拟数据仅供参考 然后我们可以把这个手工测试用例转变成自动测试用例以上的用例都属于登录这个行为的自动化测试的用例比手工测试的用例要更详细一点。 这里举两个例子 上面的自动化测试用例中有id(编号)feature(功能名称)scenario(场景名称)given(前置条件)when(操作步骤)then(预测结果)result(实际结果)这几个元素其中givenwhenthen是所有用例的基本元素在此基础上还可以扩展更多的元素如测试数据的覆盖率测试结果的可靠性等等这里的元素都是用到英文是为了方便使用某些测试框架的时候直接用可以看到里面填入的内容对比起手工测试用例要更加详细更加脚本化。 经过用例设计评审后开始进行测试因为这次是自动化测试所以需要写脚本验证脚本正确性提交缺陷。如果把脚本和用例等写在测试框架里面会更有利于我们对这次测试的管理不过自动化测试框架是一个需要展开的内容所以留到下下次讲。 现在我们用一个现成的框架unittest import unittest import time from selenium import webdriver from selenium.webdriver import ActionChainsclass testcase(unittest.TestCase):def setUp(self):print(test start)self.browser webdriver.Chrome(rD:\webdriver\chromedriver.exe)url https://www.jianshu.com/sign_inself.browser.get(url)input1 self.browser.find_element_by_id(session_remember_me)selected input1.is_selected()if selected:#判断勾选框是否勾选把“记住我”勾选去掉input1.click()def test_Login_001(self):#必须要加test在前面不然不执行print(Login_001)self.browser.find_element_by_id(session_email_or_mobile_number).send_keys(18888888888)self.browser.find_element_by_id(session_password).send_keys(ABC111)self.browser.find_element_by_class_name(sign-in-button).click()time.sleep(30)try:hover_element self.browser.find_element_by_class_name(user)#获取需要鼠标悬停才能显示下拉栏的元素classActionChains(self.browser).move_to_element(hover_element).perform()#鼠标移动到这个元素并悬停在头像处悬停time.sleep(3)self.browser.find_element_by_link_text(我的主页).click()#悬停后下拉栏选择“我的主页”result1 self.browser.find_element_by_xpath(//a[classname]).textself.assertEqual(result1, 昵称)#只能是self.直接不能是self.browser.except Exception as e:print(error reason:s% % e)raise etime.sleep(1)def test_Login_002(self):print(Login_001)self.browser.find_element_by_id(session_email_or_mobile_number).send_keys(18888888888)self.browser.find_element_by_id(session_password).send_keys()self.browser.find_element_by_class_name(sign-in-button).click()time.sleep(8)try:result1 self.browser.find_element_by_xpath(//span[classnotytext]).textself.assertEqual(result1, 手机号码/邮箱地址或密码不能为空)#只能是self.直接不能是self.browser.except Exception as e:print(error reason:s% % e)raise etime.sleep(1)可以继续加入用例def tearDown(self):self.browser.quit()print(test gone)if namemain:unittest.main() 上面的代码只写了两条用例剩下也是按照这个思路写很多的代码解释我也写作注释了。因为这一篇章我不考虑验证码的问题所以这里处理验证码的方法是在按登录后等待手动操作接着获取结果用断言assertEqual判断结果是否正确。 这里用了setup和teardown两种方法这两种方法都是每个case运行前或运行后都会执行一次的。这里也可以用setupclass和teardownclass来替代这两种方法是在所有case执行前或执行后用一次如果在以上这个例子中用setupclass和teardownclass需要在每个case的结尾加上重置回登录页面的代码所以setupclass和teardownclass更加适合流程递进的用例。 不过这里需要提一下最后的这里unittest.main()可以看到在执行程序前引入了unittest最后这个入口也指向了unittest的main方法我们来看一下用例是如何被实现的。 首先打开python文件夹如果没有改安装路径应该会在C盘(如C:\Python\Lib\unittest)打开main.py文件可以看到unittest.main()调用的是class TestProgram进入到init初始化testRunner、testLoader并根据用例模块即我们写的case创建测试集和执行它。简单来说就是unittest.main()其实是到了class TestProgram里面我们的case经过init方法初始化case需要进行的所有动作parseArgs方法传入参数并赋值createTests方法根据前一个方法的赋值创建测试集runTests方法执行测试用例这四个步骤。 完成测试需要输出测试结果 import unittest import HTMLTestRunner import time import testcasesuiteunittest.TestSuite()#创建测试集也就是把所有的用例放在一起 tsunittest.TestLoader()#加载测试suite.addTests(ts.loadTestsFromModule(testcase))#寻找模块名testcase的用例把它加载并加入到测试集nowtime.strftime(%Y-%m-%d%H%M%S) pathpython_reportnow.htmlwith open(path,wb) as f:runnerHTMLTestRunner.HTMLTestRunner(streamf,verbosity2,titleMathFunc Test Report,descriptiongenerated by HTMLTestRunner.)stream表示测试报告写入文件的存储区域如streamf表示以文件流的方式输出报告到open(path,wb)的路径verbosity1的时候 默认值为1不限制完整结果即单个用例成功输出’.’,失败输出’F’,错误输出’E’0的时候。不输出信息2的时候需要打印详细的返回信息title表示测试报告标题description表示测试报告描述runner.run(suite)#输出结果html 这里的HTMLTestRunner我是下载HTMLTestRunner.py再进行修改得到的 修改方法及下载网上可查你也可以通过pip install html-testRunner的方法下载最新的HTMLTestRunner方法同样网上可查展示效果如下 用户指导手册 用户指导手册每个公司都会有模板按照模板来写就可以了。 四、在这个过程你可能会遇到的问题 1.下载webdriver与浏览器或者浏览器版本是否匹配 这一章主要说了不需要验证码的自动化登录是如何执行的下一章我们聊一下有验证码的情况应该如何做登录功能的自动化测试下下一章我们再聊自动化测试框架。 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。