selenium seldom框架

seldom学习(八):其他用法

2020-05-14  本文已影响0人  一如既往而已

一、 seldom 跳过测试用例

seldom 通过main()方法运行测试用例只能指定到测试文件,但有时候我们一个测试文件可能会有很多测试类和方法。但在调试过程中之想执行某一部分用例,那么就可以设置用例的跳过。

import seldom

@seldom.skip()  # 跳过测试类
class YouTest(seldom.TestCase):

    @seldom.skip()  # 跳过测试用例
    def test_case(self):
        # ...


if __name__ == '__main__':
    seldom.main()

你可以通过 skip()装饰器设置要跳过的测试类或用例。

二、seldom 发邮件功能

如果你想将测试完成的报告发送到指定邮箱,那么可以调用发邮件的方法实现。

import seldom
from seldom.mail import SMTP


class Test(seldom.TestCase):

    def test_case(self):
        self.get("http://www.baidu.com")
        self.type(css="#kw", text="seldom")
        self.click(css="#su")
        self.wait(2)
        self.assertTitle("seldom_百度搜索")


if __name__ == '__main__':
    seldom.main()
    smtp = SMTP(user="you@126.com", password="abc123", host="smtp.126.com")
    smtp.sender(to="receive@mail.com")

如果你自定义了报告的名称,那么需要指定报告名称。

import seldom
from seldom.mail import SMTP

# ……

if __name__ == '__main__':
    report_path = "/you/path/to/report.html"
    seldom.main(report_name=report_path)
    smtp = SMTP(user="you@126.com", password="abc123", host="smtp.126.com")
    smtp.sender(to="receive@mail.com", attachments=report_path)

自动化发邮件不支持debug 模式,debug模式不会生成测试报告,自然也无法将报告发送到指定邮箱了。

如何设置前置步骤

在编写自动化测试用例的过程中,我们需要设置前置步骤。这时候就需要将一些前置动作放到setUp/setUpClass中。

setUp使用

当你想在每条用例开始之前执行的动作,放到setUp()方法中。

import seldom


class TestCase(seldom.TestCase):

    def setUp(self):
        self.get("https://www.baidu.com")

    def test_search_seldom(self):
        self.type_enter(id_="kw", text="seldom")
        self.assertTitle("seldom_百度搜索")

    def test_search_poium(self):
        self.type_enter(id_="kw", text="poium")
        self.assertTitle("poium_百度搜索")
#...

三、setUpClass使用

有些用例需要在测试类开始之前执行一些动作,这个时候就会用到setUpClass()类方法。

import seldom


class TestCase(seldom.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.get(cls, "https://www.baidu.com")
        cls.type(cls, id_="kw", text="setupclass")
        cls.click(cls, id_="su")
        cls.sleep(2)

    def test_get_search_result(self):
        result = self.get_text(xpath="//div/h3/a", index=0)
        print(result)


if __name__ == '__main__':
    seldom.main(debug=True)


setUpClass()方法比较特殊,在它下面编写测试步骤,需要注意两点:

总之,并不推荐你把用例的操作步骤 setUpClass()方法中。

上一篇 下一篇

猜你喜欢

热点阅读