侧边栏壁纸
  • 累计撰写 23 篇文章
  • 累计创建 12 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

怎么保障自动化用例的可靠性

usoo
2024-03-11 / 0 评论 / 0 点赞 / 106 阅读 / 0 字

前言

最近准备在公司从0到1落地接口自动化框架,市面上虽然存在许多二开的自动化框架诸如pytest,但想实现具有定制化的框架,还是选型unnitest最合适。但我发现落地时面临的痛点问题不少,尤其是如何保障用例独立性,做到用例之间互不影响,需要特别关注。为此我总结了下用例独立性保障应该注意的地方。

痛点场景

1. 用例1存在数据noteid,进行请求删除操作,用例2仍然重复使用,会导致查询不到数据,影响用例执行结果。

 def testCase01_major(self):  

    noteid = "123"

    body = {"noteId": noteid}

    res = self.post(self.del_url, json = body,)

 def testCase02_major(self):  

    noteid = "123"

    body = {"noteId": noteid}

    res = self.get(self.check_url, json = body,)

2. 用例1利用构建数据的方法生成noteid数据,用例2进行查询操作,会查到用例1的数据,存在脏数据的情况。

 def testCase01_major(self):  

    noteid = creat_note(id)

    body = {"noteId": noteid}

    res = self.get(self.del_url, json = body,)

 def testCase02_major(self):  

    noteid = creat_note(id)

    body = {"noteId": noteid}

    res = self.get(self.check_url, json = body,)

用例独立性的保障

1.数据唯一性保障

- 存在唯一性数据要保障构建时的唯一性,用例能被重复执行。

- 可以利用时间戳构建数据确保唯一性。

noteid = str(int(time.time() * 1000)) + '_noteid'

2.实现数据清理

- 存在数据构建的场景,无论用例执行成功还是失败,需要实现数据清理方法。

- setup必须确保环境纯净,不存在任何脏数据。(跟开发确认,或者直接连接数据库查看数据情况)

     def setUp(self) -> None: # 初始化构建数据、前置清理脏数据  

	  clear_groups(self.userId1, self.sid1)

3.用户隔离

- 基于某个用户对象实现数据构建、数据清理,不会影响其他用户数据。

     class TestGroupMajor(unittest.TestCase):  

	   userId1 = '1234'  

	   sid1 = '11111111121111d'  

4.前置数据准备

- 每个用例需要构建的数据可以放在用例最前面。

  def testCase01_major(self):  

    step('【step】前置构建数据')  

    create_notes(self.userId1, self.sid1, 1)  

    host = 'https://******'  

    path = f'/user/{self.userId1}/'  

    url = host + path

0

评论区