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

python做网站视频typecho前端建站工具

python做网站视频,typecho前端建站工具,百度推广多少钱,整合营销传播成功案例🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、什么是自动化测试 把人为驱动的测试行为转化为机器执行的一种过程称为自动化测试。(来自百度百科)本质上来说,自动化测试对比起手工测试除了需…

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快  

一、什么是自动化测试

把人为驱动的测试行为转化为机器执行的一种过程称为自动化测试。(来自百度百科)本质上来说,自动化测试对比起手工测试除了需要写代码外并没有什么不同,它们的不同在于在各自适合的场景不同,从而使它们能够在它们的场合发挥更大的优势。

二、什么情况不需要自动化测试

①需求变动频繁

②项目周期短

③自动化脚本一次性

等受时间(少)、技术(难度大)和重用性(低)因素影响的情况

三、自动化测试过程

上面说了很多概念性的东西,现在我引入一个实例来说明自动化测试的过程。现在有一个场景,我们需要测试一个网站的登录界面(简书的登录页面)。

首先需要写测试用例(如果有需求文档再写测试用例更好,这里的登录只做最简单的手机或邮箱、密码登录,其他如记住我,注册功能不测试)

组合有两个:

手机+密码,可以拓展成①手机已注册+密码正确,②手机已注册+密码不正确,③手机未注册+密码在数据库内,④手机未注册+密码不在数据库内,⑤手机号密码均为空,⑥手机号为空,⑦密码为空,⑧手机号密码都不空。其中手机号密码全部空的情况前面四种情况都可以验证。

邮箱+密码,可以拓展的几个方面与上面相同。所以写成的手工测试用例如下图(图片中所有数据均为虚拟数据,仅供参考)

然后我们可以把这个手工测试用例转变成自动测试用例,以上的用例都属于登录这个行为的,自动化测试的用例比手工测试的用例要更详细一点。 这里举两个例子

上面的自动化测试用例中有id(编号),feature(功能名称),scenario(场景名称),given(前置条件),when(操作步骤),then(预测结果),result(实际结果)这几个元素其中,given,when,then是所有用例的基本元素,在此基础上还可以扩展更多的元素如测试数据的覆盖率,测试结果的可靠性等等,这里的元素都是用到英文是为了方便使用某些测试框架的时候直接用,可以看到里面填入的内容对比起手工测试用例要更加详细更加脚本化。

经过用例设计评审后开始进行测试,因为这次是自动化测试,所以需要写脚本,验证脚本正确性,提交缺陷。如果把脚本和用例等写在测试框架里面会更有利于我们对这次测试的管理,不过自动化测试框架是一个需要展开的内容,所以留到下下次讲。

现在我们用一个现成的框架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(r'D:\webdriver\chromedriver.exe')url = 'https://www.jianshu.com/sign_in'self.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[@class='name']").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[@class='noty_text']").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 __name__=="__main__":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 testcasesuite=unittest.TestSuite()#创建测试集,也就是把所有的用例放在一起
ts=unittest.TestLoader()#加载测试suite.addTests(ts.loadTestsFromModule(testcase))#寻找模块名testcase的用例,把它加载并加入到测试集now=time.strftime("%Y-%m-%d_%H_%M_%S")
path="python_report"+now+".html"with open(path,"wb+") as f:runner=HTMLTestRunner.HTMLTestRunner(stream=f,verbosity=2,title='MathFunc Test Report',description='generated by HTMLTestRunner.')'''stream表示测试报告写入文件的存储区域,如stream=f表示以文件流的方式输出报告到open(path,"wb+")的路径verbosity=1的时候 默认值为1,不限制完整结果,即单个用例成功输出’.’,失败输出’F’,错误输出’E’=0的时候。不输出信息=2的时候,需要打印详细的返回信息title表示测试报告标题description表示测试报告描述'''runner.run(suite)#输出结果html

这里的HTMLTestRunner我是下载HTMLTestRunner.py再进行修改得到的 ,修改方法及下载网上可查,你也可以通过pip install html-testRunner的方法下载最新的HTMLTestRunner,方法同样网上可查展示效果如下:

用户指导手册

用户指导手册每个公司都会有模板按照模板来写就可以了。

四、在这个过程你可能会遇到的问题

1.下载webdriver与浏览器或者浏览器版本是否匹配

这一章,主要说了不需要验证码的自动化登录是如何执行的,下一章我们聊一下有验证码的情况应该如何做登录功能的自动化测试,下下一章我们再聊自动化测试框架。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

http://www.dtcms.com/wzjs/574271.html

相关文章:

  • 中国建设银行晋中分行网站网站建设产品分类
  • 简单小网站WordPress菜单调用不出
  • 温州模板网站建站网页编辑工具2022
  • 建设厅网站的秘钥怎么买网站运营一般做那些分析
  • 高频网站开发广州网站排名优化费用
  • 东平网站制作哪家好防疫站24小时在线咨询
  • 地图制作网站自己做一个网站需要多少钱
  • 免费 建站怀集网站建设
  • 广州 网站建设天元建设集团有限公司单位
  • 设计公司网站天津实体店网站建设
  • 网站建设的服务器网络架构有几种模式
  • 网站建设是做什么邢台搜
  • 怎么给自己做网站吗知乎 做网站的公司 中企动力
  • 做网站前怎么写文档wordpress主题 双站点
  • 建设企业网站首页邯郸百度公司咋样
  • 网站源码地址怎么看青岛seo网站推广
  • 优秀网站做的比较好的美食网站
  • 网站设计稿一般尺寸做网站需要多少钱卖片可以吗
  • 建设信用卡网银网站东莞技术支持网站建设专家
  • 网站轮播广告动画怎么做微信推广网站建设
  • 网站建设5iec怎么制作手机网页
  • 网络营销实验网站建设心得绍兴市建设局网站
  • 做网站微信支付多少钱小说网站源码带采集
  • 网站是怎么搭建的深圳做电商网站
  • 小区的名字建设单位去什么网站备案系统开发语言
  • 长春网站建设中心网站建设上传图片不显示
  • 技术先进的网站建设公司资源共享课程网站开发毕业设计
  • 做网站时无法上传图片网站换模板影响
  • 中国建设工程造价管理网站chatgpt openai
  • 没有网站可以做cpc吗巴西网站域名