Java和Python做自动化测试哪个更有优势?,2024年最新太香了

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

2、Python编写Web自动化测试脚本

以下是使用Python编写Selenium自动化脚本的基本步骤:

安装Python和Selenium库:首先需要安装Python和Selenium库。可以使用pip命令安装Selenium库:pip install selenium。

下载浏览器驱动:Selenium需要浏览器驱动来控制浏览器。可以根据自己使用的浏览器版本下载对应的驱动。例如,如果使用Chrome浏览器,可以从ChromeDriver官网下载对应版本的驱动。

编写Python脚本:编写Python脚本来控制浏览器执行自动化测试操作。以下是一个简单的示例脚本:

from selenium import webdriver

创建Chrome浏览器对象

driver = webdriver.Chrome(‘/path/to/chromedriver’)

打开网页

driver.get(‘http://www.baidu.com’)

在搜索框中输入关键字

search_box = driver.find_element_by_name(‘wd’)
search_box.send_keys(‘Python Selenium’)

点击搜索按钮

search_button = driver.find_element_by_id(‘su’)
search_button.click()

关闭浏览器

driver.quit()

运行Python脚本:保存脚本并在终端中运行。如果一切正常,浏览器会自动打开并执行自动化测试操作。

需要注意的是,Selenium的Python API与其他语言的API略有不同,因此需要查看Python API文档以了解更多信息。

3、Java的appium自动化测试脚本

以下是一个使用Java编写的Appium自动化测试脚本示例:

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

public class AppiumTest {
AppiumDriver driver;

@BeforeTest
public void setup() throws MalformedURLException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(“deviceName”, “Android Emulator”);
capabilities.setCapability(“platformName”, “Android”);
capabilities.setCapability(“appPackage”, “com.example.android”);
capabilities.setCapability(“appActivity”, “com.example.android.MainActivity”);
capabilities.setCapability(“noReset”, true);
driver = new AndroidDriver<>(new URL(“http://0.0.0.0:4723/wd/hub”), capabilities);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}

@Test
public void testApp() {
// 在这里编写测试用例
MobileElement element = driver.findElementById(“com.example.android:id/button”);
element.click();
}

@AfterTest
public void tearDown() {
driver.quit();
}
}

在上面的代码中,首先定义了一个AppiumDriver对象,然后在setup()方法中设置了一些必要的参数,如设备名称、平台名称、应用程序包名和启动活动等。接下来,我们在testApp()方法中编写了测试用例,该测试用例点击了一个按钮。

最后,在tearDown()方法中关闭了驱动程序。

不过需要注意的是,编码中使用了@BeforeTest和@AfterTest注释来分别在测试之前和之后运行setup()和tearDown()方法,还使用了@Test注释来标记测试用例。

4、Python编写appium的测试脚本

以下是一个使用Python和Appium进行自动化测试的示例脚本:

from appium import webdriver
from time import sleep

设置Appium连接参数

desired_caps = {}
desired_caps[‘platformName’] = ‘Android’
desired_caps[‘platformVersion’] = ‘9’
desired_caps[‘deviceName’] = ‘Android Emulator’
desired_caps[‘appPackage’] = ‘com.example.myapp’
desired_caps[‘appActivity’] = ‘MainActivity’

启动Appium会话

driver = webdriver.Remote(‘http://localhost:4723/wd/hub’, desired_caps)

等待应用启动

sleep(5)

在文本框中输入内容

text_field = driver.find_element_by_id(‘com.example.myapp:id/text_field’)
text_field.send_keys(‘Hello, World!’)

点击按钮

button = driver.find_element_by_id(‘com.example.myapp:id/button’)
button.click()

等待结果出现

sleep(2)

获取结果文本

result = driver.find_element_by_id(‘com.example.myapp:id/result’).text
print(result)

关闭Appium会话

driver.quit()
Python

这个脚本启动一个Android模拟器,并在其中运行一个名为“com.example.myapp”的应用程序。它在应用程序中找到一个文本框和一个按钮,向文本框中输入文本并单击按钮。然后它等待2秒钟,以便结果出现,并从结果文本中获取结果。最后,它关闭Appium会话。

5、Java编写接口自动化测试脚本

以下是Java编写一个接口的自动化测试脚本的示例:

import io.restassured.RestAssured;
import io.restassured.response.Response;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class APITest {
private String baseUrl = “http://api.example.com”;
private String path = “/user”;
private String token = “your_token”;

@BeforeClass
public void setup() {
RestAssured.baseURI = baseUrl;
}

@Test
public void testGetUserById() {
String id = “123”;
Response response = RestAssured.given()
.header(“Authorization”, "Bearer " + token)
.when()
.get(path + “/” + id)
.then()
.extract().response();

Assert.assertEquals(response.getStatusCode(), 200);
Assert.assertEquals(response.jsonPath().get(“id”), id);
Assert.assertEquals(response.jsonPath().get(“name”), “John”);
}

@Test
public void testCreateUser() {
String requestBody = “{“name”:“John”,“age”:30}”;

Response response = RestAssured.given()
.header(“Authorization”, "Bearer " + token)
.header(“Content-Type”, “application/json”)
.body(requestBody)
.when()
.post(path)
.then()
.extract().response();

Assert.assertEquals(response.getStatusCode(), 201);
Assert.assertEquals(response.jsonPath().get(“name”), “John”);
Assert.assertEquals(response.jsonPath().get(“age”), 30);
}

@Test
public void testUpdateUser() {
String id = “123”;
String requestBody = “{“name”:“John”,“age”:31}”;

Response response = RestAssured.given()
.header(“Authorization”, "Bearer " + token)
.header(“Content-Type”, “application/json”)
.body(requestBody)
.when()
.put(path + “/” + id)
.then()
.extract().response();

Assert.assertEquals(response.getStatusCode(), 200);
Assert.assertEquals(response.jsonPath().get(“id”), id);
Assert.assertEquals(response.jsonPath().get(“name”), “John”);
Assert.assertEquals(response.jsonPath().get(“age”), 31);
}

@Test
public void testDeleteUser() {
String id = “123”;

Response response = RestAssured.given()
.header(“Authorization”, "Bearer " + token)
.when()
.delete(path + “/” + id)
.then()
.extract().response();

Assert.assertEquals(response.getStatusCode(), 204);
}
}
Java

在这个示例中,使用了RestAssured库来发送HTTP请求和解析响应。在@BeforeClass注解的方法中,还设置了基本的API URL。在每个测试方法中,发送HTTP请求并对响应进行断言,以确保API的正确性。

6、Python编写接口自动化测试脚本

以下是一个简单的Python接口自动化测试脚本示例:

import requests

定义接口请求地址和参数

url = “http://example.com/api”
params = {“key”: “value”}

发送请求并获取响应

response = requests.get(url, params=params)

验证响应状态码

if response.status_code == 200:
print(“接口请求成功!”)
else:
print(“接口请求失败!”)

验证响应数据

expected_data = {“code”: 200, “message”: “success”}
actual_data = response.json()

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
ccess"}
actual_data = response.json()

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-jLwUqUkm-1713320635483)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值