• 软件测试/测试开发丨利用ChatGPT 生成自动化测试脚本


    点此获取更多相关资料

    简介

    自动化测试脚本可以模拟用户与应用程序的交互,例如点击按钮、输入数据、导航到不同的页面等等,以验证应用程序的正确性、性能和稳定性。

    图片

    自动化测试在回归测试、冒烟测试等测试流程中都可以极大地起到节省时间、节省人力的作用,所以目前自动化测试工程师,也是一个非常炙手可热的岗位。

    在编写自动化测试的过程中,ChatGPT 可以作为一个非常好用的工具,极大提升编写效率。

    实践演练

    在使用 ChatGPT 编写自动化测试脚本的时候,提示词最好明确相关的技术栈,这样可以在生成的脚本基础之上做对应的修改。

    • 提示词:请帮我编写一个接口自动化测试脚本,要求使用 Pytest + Requests 。只需要对响应状态码完成断言即可。

    ChatGPT的响应信息为:

    import pytest
    import requests
    
    # 定义测试用例
    def test_api_response_status_code():
        # 设置API端点
        api_url = "https://jsonplaceholder.typicode.com/posts/1"
    
        # 发送GET请求
        response = requests.get(api_url)
    
        # 检查响应状态码是否为200 OK
        assert response.status_code == 200
    
    # 运行测试
    if __name__ == "__main__":
        pytest.main(["-v", "test_api.py"])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 提示词:请帮我编写一个 Web 自动化测试脚本,要求使用 Pytest + Playwright。

    ChatGPT的响应信息为:

    import pytest
    from playwright.sync_api import sync_playwright
    
    # 定义测试用例
    def test_web_page_title():
        with sync_playwright() as p:
            browser = p.chromium.launch()
            page = browser.new_page()
    
            # 打开网页
            page.goto("https://example.com")
    
            # 获取页面标题
            title = page.title()
    
            # 检查页面标题是否包含"Example Domain"
            assert "Example Domain" in title
    
            # 关闭浏览器
            browser.close()
    
    # 运行测试
    if __name__ == "__main__":
        pytest.main(["-v", "test_web.py"])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 请结合 Harmcrest 优化断言。

    ChatGPT的响应信息为:

    import pytest
    from playwright.sync_api import sync_playwright
    from hamcrest import assert_that, contains_string
    
    # 定义测试用例
    def test_web_page_title():
        with sync_playwright() as p:
            browser = p.chromium.launch()
            page = browser.new_page()
    
            # 打开网页
            page.goto("https://example.com")
    
            # 获取页面标题
            title = page.title()
    
            # 使用Hamcrest断言检查页面标题是否包含"Example Domain"
            assert_that(title, contains_string("Example Domain"))
    
            # 关闭浏览器
            browser.close()
    
    # 运行测试
    if __name__ == "__main__":
        pytest.main(["-v", "test_web.py"])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    总结

    1.写清楚需求:在要求ChatGPT编写自动化测试脚本的时候,需要给它明确使用的技术栈,方便基于脚本做修改。

    2.将复杂的任务拆分为更简单的子任务/系统地测试变化:通过多次提问,进一步修正ChatGPT的回复,直到满足需求。

  • 相关阅读:
    GitHub百万下载量的高性能Java架构核心手册,到底有多牛?
    TypeScript vs JavaScript
    规律/原理/规则/法则/定理/公理/本质/定律
    讲解Windows系统中如何使用Python读取图片的元数据【Metadata】
    seaborn
    Linux C 应用编程学习笔记——(2)文件 I/O 基础
    ROS1学习笔记:服务中的Service和Client(ubuntu20.04)
    测试系列:输入一个正整数n,然后输出n对应的二进制数-------要求采用递归算法实现
    散列表:Word文档中的单词拼写检查功能是如何实现的?
    Redis 的发布和订阅
  • 原文地址:https://blog.csdn.net/Ceshiren666/article/details/134183126