自动化测试常用断言的使用方法(python)

本文介绍了自动化测试中常用的断言方法,包括`assertEqual`、`assertNotEqual`、`assertTrue`、`assertFalse`、`assertIsNone`和`assertIsNotNone`的使用方法。通过实际代码示例展示了如何在测试脚本中实现元素查找、操作及预期结果判断,以提高测试的准确性和效率。
摘要由CSDN通过智能技术生成

自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断。

这里介绍几个常用断言的使用方法,可以一定程度上帮助大家对预期结果进行判断。

这里介绍以下几个断言方法: 
assertEqual 
assertNotEqual 
assertTrue 
assertFalse 
assertIsNone 
assertIsNotNone

(一)assertEqual 和 assertNotEqual 
assertEqual:如两个值相等,则pass 
assertNotEqual:如两个值不相等,则pass 
下面看下具体使用方法

<code class="language-python hljs  has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">self.driver.find_element_by_xpath(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"//android.widget.LinearLayout[1]/android.support.v7.app.ActionBar.e[2]"</span>).click()<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#切到超模25tab</span>
sleep(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>)
self.assertEqual(self.driver.find_element_by_id(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'com.boohee.secret:id/tv_title'</span>).text,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">u'超模25'</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'切到超模25tab失败'</span>)</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>

(1)这边是通过id(com.boohee.secret:id/tv_title)获取它的text值,与预期“超模25”对比,如相等则pass;不相等则fail。 
(2)后面的“切到超模25tab失败”是fail时需要打印的信息,可写可不写。 
断言assertNotEqual反着用就可以了。

(二)assertTrue和assertFalse 
assertTrue:判断bool值为True,则pass 
assertFalse:判断bool值为False,则Pass 
下面看下具体使用方法

<code class="language-python hljs  has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">self.driver.find_element_by_xpath(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"//android.widget.LinearLayout[1]/android.widget.TextView[1]"</span>).click()<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#点击登录入口</span>
sleep(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)
self.driver.find_element_by_xpath(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"//android.widget.LinearLayout[1]/android.widget.EditText[1]"</span>).send_keys(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"testq1"</span>)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#输入用户名</span>
sleep(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)
self.assertTrue(self.find_element_by_id(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'com.boohee.secret:id/btn_login'</span>).is_enabled(),<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'未输密码登录按钮为不可点状态,Fail'</span>)</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul>

(1)这边是通过id(com.boohee.secret:id/btn_login)获取它的激活状态,如为True则pass;反之则fail。 
(2)后面的“未输密码登录按钮为不可点状态”是fail时需要打印的信息,可写可不写。 
断言assertFalse反着用就可以了。

(三)assertIsNone和assertIsNotNone 
assertIsNone:不存在,则pass 
assertIsNotNone:存在,则pass 
下面看下具体使用方法

<code class="language-python hljs  has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">self.driver.find_element_by_xpath(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"//android.widget.LinearLayout[1]/android.widget.TextView[1]"</span>).click()<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#点击登录入口</span>
sleep(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)
self.driver.find_element_by_xpath(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"//android.widget.LinearLayout[1]/android.widget.EditText[1]"</span>).send_keys(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"testq1"</span>)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#输入用户名</span>
sleep(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)
self.driver.find_element_by_xpath(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"//android.widget.LinearLayout[2]/android.widget.EditText[1]"</span>).send_keys(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"boohee"</span>)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#输入密码</span>
sleep(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)
self.driver.find_element_by_xpath(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"//android.widget.LinearLayout[1]/android.widget.Button[1]"</span>).click()<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#点击登录按钮</span>
sleep(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">10</span>)
self.assertIsNotNone(self.driver.find_element_by_id(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'com.boohee.secret:id/tv_edit_profile'</span>),<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'无编辑资料按钮,登录失败,Fail'</span>)</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li></ul>

(1)这边是通过寻找id(com.boohee.secret:id/tv_edit_profile)的元素是否存在,如存在则pass;不存在则fail。 
(2)后面的“无编辑资料按钮,登录失败,Fail”是fail时需要打印的信息,可写可不写。 
断言assertIsNone反着用就可以了。

总结:这边的断言虽然不能像人工判断预期结果那样准确,但合理灵活地运用,对于重要节点加上断言也是具有一定判断预期的效果的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值