首页 > 编程知识 正文

视频剪辑入门用哪个软件,安卓自动化测试工具

时间:2023-05-06 05:38:33 阅读:46598 作者:2160

本文使用的案例:

图1是登录首页,输入用户名和密码后,单击“登录”按钮,如果用户名密码不正确位于图3的登录成功页面中,将显示错误消息。 【注册】点击按钮进入图2,注册; 点击【清除】按钮,清除数据库中的所有数据。 此按钮是临时设置用于测试的,正式产品将取消。

图2是注册页面,输入用户名和密码后,单击“注册”按钮,如果数据库中不存在输入的用户名,则注册成功并返回图1的登录页面。 否则,将显示错误消息。

图3是成功登录的页面,在图1中输入正确的用户名和密码后,进入此页面后,此处的" Hello world "将变为" Welcome "用户名。

就软件自动化测试而言,对于许多没有参与过软件开发的学生来说,这是一项挑战。 但是,了解软件自动化测试的步骤后再进行自动化测试代码的开发是很有用的。 本文主要探讨自动化测试的三大步骤、接口自动化测试的四大步骤和基于UI自动化测试的三大步骤。

软件自动化测试的三个步骤是设置环境、运行测试和清除环境。 接口自动化测试的四个小步骤是协议包组织、协议包发送、协议包接受和协议包分析; 基于UI自动化测试的三个大小的步骤是获取对象、操作对象和断言。

1)我们先来考虑软件自动化测试的三大步骤,分为设置环境、执行测试和清除环境。

在python的unittest测试框架中设置(,test_XXX )、teardown ); 在Java的JUnit测试框架中对应于@before、@test和@after。

这里特别想指出的是,为什么在设置环境时也需要清除环境呢? 众所周知,我们的自动化测试程序一次运行多个测试用例。 在步骤中设置环境并清除环境的目的是确保该测试用例在正确的环境中运行,并且该测试用例已运行不会影响其他测试用例的运行。

假设如果此程序在运行此测试时发生意外中断,并且没有执行清除环境的操作,则会导致下一个程序的运行。 例如,在上面的情况下,您可以通过单击图1中的“清除”按钮来清除系统数据库中的数据。

如果测试程序在图2中成功注册了用户,则在单击“注册”按钮时发生错误,在下一个程序以相同用户名注册时发生错误,因此在测试程序中单击图1的“清除”按钮

如果有这样的学生,你会问为什么需要最后的通关操作。 我们把所有的清除操作都送到设定环境进行操作就可以了。 答案是,我们的自动化测试程序在测试结束交付后的环境要干净,其次要让使用这个环境的学生正常使用。 所有程序都可能是最后一个程序,所以必须最后删除。

以下是使用Appium技术和unittest框架的案例的测试代码。

#! /usr/模糊的冷风/env python# coding=utf-8 importunittestfromappium.web driver.com mon.touch _ actionimporttouchactionfromappiumimportwebdriverclass 喜欢听歌的树叶={}self.desired_喜欢听歌的树叶(' platformname ' )='Android'self.deelf )。='6.0'self.desired_爱听歌曲树叶[ ' device name ' ]=' Android emulator ' self.desired _爱听歌曲树叶['appPackage']=' com.example.demo4' self.desired _喜欢听歌的树叶['appactivity']='.main activity ' self.driver=web driver.remoto ty self.desired _喜欢唱歌的树叶(self.driver.find _ element _ by _ ) 3360 self.username=' zx DDS ' self.password=' 123456 ' self.driver.find _ element _ by _ id (com.example.example ) . send_keys(self.username ) self.driver.find _ element _ by _ id (com.example.demo 4: id/password1'

password1").send_keys(self.password)self.driver.find_element_by_id("com.example.demo4:id/button11").click()self.driver.find_element_by_id("com.example.demo4:id/username").send_keys("")self.driver.find_element_by_id("com.example.demo4:id/username").send_keys(self.username)self.driver.find_element_by_id("com.example.demo4:id/password").send_keys("")self.driver.find_element_by_id("com.example.demo4:id/password").send_keys(self.password)self.driver.find_element_by_id("com.example.demo4:id/button1").click()self.acut_result = self.driver.find_element_by_id("com.example.demo4:id/welcomeinfo").textself.assertEqual(self.acut_result,"Welcome "+self.username)def tearDown(self):if (not (self.driver.find_element_by_id("com.example.demo4:id/logout"))):self.driver.find_element_by_id("com.example.demo4:id/logout").click() self.driver.find_element_by_id("com.example.demo4:id/button3").click()self.driver.quit()if __name__=='__main__':#构造测试集suite=unittest.TestSuite()suite.addTest(demo4test("test_APP"))#运行测试集合runner=unittest.TextTestRunner()runner.run(suite)

在这个代码中def setUp(self)为初始化环境,这里结尾代码"self.driver.find_element_by_id(“com.example.demo4:id/button3”).click()"为点击图一的【清除】键;def test_APP(self):为执行测试部分;def tearDown(self):为清除环境部分。

2)接下来我们介绍一下自动化测试的三大小步骤为:获取对象、操作对象和断言。

在上述代码中self.driver.find_element_by_id(“XXX”)为获取对象(我发现,不管是利用Appium还是利用UIAutomation或Robertium都可以使用by_id来实现原生态APP控件的定位)、.click(),.send_keys(self.username)等为进行操作、self.assertEqual(self.acut_result,"Welcome "+self.username)为断言。

3)最后我们来介绍一下接口自动化测试的接口自动化测试的四大小步骤为:组织协议包、发送协议包、接受协议包和分析协议包。

这里我们以测试一个基于WEB的登录程序为例。

#!/usr/含糊的冷风/env python#coding:utf-8import unittest,requestsclass CheckUserUnit(unittest.TestCase):def setUp(self):self.correctusername="bmdxh"self.correctpassword="123456"self.discorrectusername="tom"self.discorrectpassword="000000"self.url="http://localhost:8080/sec/20/jsp/index.jsp"#错误的用户名,正确的密码def test_login_eucp(self):payload={"name": self.discorrectusername,"password": self.correctpassword}data = requests.post(self.url,data=payload)self.assertEqual("200",str(data.status_code))self.assertIn("登录</a>失败",str(data.text))#正确的用户名,错误的密码def test_login_cuep(self):payload={"name": self.correctusername,"password": self.discorrectpassword}data = requests.post(self.url,data=payload)self.assertEqual("200",str(data.status_code))self.assertIn("登录</a>失败",str(data.text))#错误的用户名,错误的密码def test_login_euep(self):payload={"name":self.discorrectusername,"password":self.discorrectpassword}data = requests.post(self.url,data=payload)self.assertEqual("200",str(data.status_code))self.assertIn("登录</a>失败",str(data.text))#正确的用户名,正确的密码def test_login_cucp(self):payload={"name": self.correctusername,"password":self.correctpassword}data = requests.post(self.url,data=payload)self.assertEqual("200",str(data.status_code))self.assertIn("登录成功",str(data.text))if __name__=='__main__':#构造测试集suite=unittest.TestSuite()suite.addTest(CheckUserUnit("test_login_eucp"))suite.addTest(CheckUserUnit("test_login_cuep"))suite.addTest(CheckUserUnit("test_login_euep"))suite.addTest(CheckUserUnit("test_login_cucp"))#运行测试集合runner=unittest.TextTestRunner()runner.run(suite)同样在这里def setUp(self)为初始化环境;def test_XXX(self):为执行测试部分;def tearDown(self):为清除环境部分。我们以"正确的用户名,正确的密码"的代码为例进行介绍。"payload={"name": self.correctusername,"password":self.correctpassword}"为组织协议包;"data = requests.post(self.url,data=payload)"为发送协议包和接受协议包"self.assertEqual("200",str(data.status_code))"和"self.assertIn("登录成功",str(data.text)) "为分析协议包"

下面有我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。

对于软件测试的的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你

关注微信公众号【程序员二黑】即可领取Python自动化测试超硬核资源啦

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。